Fensterrahmenklausel
Gilt für: Databricks SQL 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
istoffset_start
die positive integrale Literalzahl, die definiert, wie viele Zeilen vor der aktuellen Zeile der Rahmen beginnt.Beim Modus
RANGE
istoffset_start
ein positiver Literalwert eines Typs, der vonobExpr
subtrahiert werden kann. Der Rahmen beginnt bei der ersten Zeile der Partition, für dieobExpr
größer oder gleichobExpr - 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
istoffset_start
die positive integrale Literalzahl, die definiert, wie viele Zeilen nach der aktuellen Zeile der Rahmen beginnt. Beim ModusRANGE
istoffset_start
ein positiver Literalwert eines Typs, der zuobExpr
addiert werden kann. Der Rahmen beginnt bei der ersten Zeile der Partition, für dieobExpr
größer oder gleichobExpr + 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, istoffset_stop
die positive integrale Literalzahl, die definiert, wie viele Zeilen vor der aktuellen Zeile der Rahmen endet. Wenn als „frame_mode“RANGE
definiert ist, istoffset_stop
ein positiver Literalwert desselben Typs wieoffset_start
. Der Rahmen endet bei der letzten Zeile der Partition, für dieobExpr
kleiner oder gleichobExpr - 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, istoffset_stop
die positive integrale Literalzahl, die definiert, wie viele Zeilen nach der aktuellen Zeile der Rahmen endet. Wenn als „frame_mode“RANGE
definiert ist, istoffset_stop
ein positiver Literalwert desselben Typs wieoffset_start
. Der Rahmen endet bei der letzten Zeile der Partition, für dieobExpr
kleiner oder gleichobExpr + offset_stop
an der aktuellen Zeile ist.UNBOUNDED FOLLOWING
Gibt an, dass der Fensterrahmen bei der letzten Zeile der Partition endet.