Freigeben über


Fensterrahmenklausel

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt eine gleitende Teilmenge von Zeilen innerhalb der Partition an, mit der die Aggregat- oder Analysefensterfunktion arbeitet.

Syntax

{ frame_mode frame_start |
  frame_mode BETWEEN frame_start AND frame_end } }

frame_mode
{ RANGE | ROWS }

frame_start
{ UNBOUNDED PRECEDING |
  offset_start PRECEDING |
  CURRENT ROW |
  offset_start FOLLOWING }

frame_end
{ offset_stop PRECEDING |
  CURRENT ROW |
  offset_stop FOLLOWING |
  UNBOUNDED FOLLOWING }

Parameter

  • frame_mode

    • ROWS

      Bei Angabe dieses Parameters wird der gleitende Fensterrahmen in Form von Zeilen ausgedrückt, die der aktuellen Zeile vor- oder nachgestellt sind.

    • RANGE

      Bei Angabe dieses Parameters muss die Fensterfunktion eine ORDER BY-Klausel mit einem einzelnen obExpr-Ausdruck angeben.

      Die Grenzen des gleitenden Fensters werden dann als Offset vom obExpr-Ausdruck für die aktuelle Zeile ausgedrückt.

  • frame_start

    Die Anfangsposition des gleitenden Fensterrahmens relativ zur aktuellen Zeile.

    • UNBOUNDED PRECEDING

      Gibt an, dass der Fensterrahmen am Anfang der Partition beginnt.

    • offset_start PRECEDING

      Beim Modus ROWS ist offset_start die positive integrale Literalzahl, die definiert, wie viele Zeilen vor der aktuellen Zeile der Rahmen beginnt.

      Beim Modus RANGE ist offset_start ein positiver Literalwert eines Typs, der von obExpr subtrahiert werden kann. Der Rahmen beginnt bei der ersten Zeile der Partition, für die obExpr größer oder gleich obExpr - offset_start an der aktuellen Zeile ist.

    • CURRENT ROW

      Gibt an, dass der Rahmen bei der aktuellen Zeile beginnt.

    • offset_start FOLLOWING

      Beim Modus ROWS ist offset_start die positive integrale Literalzahl, die definiert, wie viele Zeilen nach der aktuellen Zeile der Rahmen beginnt. Beim Modus RANGE ist offset_start ein positiver Literalwert eines Typs, der zu obExpr addiert werden kann. Der Rahmen beginnt bei der ersten Zeile der Partition, für die obExpr größer oder gleich obExpr + offset_start an der aktuellen Zeile ist.

  • frame_stop

    Das Ende des gleitenden Fensterrahmens relativ zur aktuellen Zeile.

    Wird der Parameter nicht angegeben, endet der Rahmen bei CURRENT ROW. Die Endposition des gleitenden Fensters muss größer als die Anfangsposition des Fensterrahmens sein.

    • offset_start PRECEDING

      Wenn als „frame_modus“ ROWS definiert ist, ist offset_stop die positive integrale Literalzahl, die definiert, wie viele Zeilen vor der aktuellen Zeile der Rahmen endet. Wenn als „frame_mode“ RANGE definiert ist, ist offset_stop ein positiver Literalwert desselben Typs wie offset_start. Der Rahmen endet bei der letzten Zeile der Partition, für die obExpr kleiner oder gleich obExpr - offset_stop an der aktuellen Zeile ist.

    • CURRENT ROW

      Gibt an, dass der Rahmen bei der aktuellen Zeile endet.

    • offsetStop FOLLOWING

      Wenn als „frame_modus“ ROWS definiert ist, ist offset_stop die positive integrale Literalzahl, die definiert, wie viele Zeilen nach der aktuellen Zeile der Rahmen endet. Wenn als „frame_mode“ RANGE definiert ist, ist offset_stop ein positiver Literalwert desselben Typs wie offset_start. Der Rahmen endet bei der letzten Zeile der Partition, für die obExpr kleiner oder gleich obExpr + offset_stop an der aktuellen Zeile ist.

    • UNBOUNDED FOLLOWING

      Gibt an, dass der Fensterrahmen bei der letzten Zeile der Partition endet.