Klauzula ramy okna (databricks SQL)
Określa przesuwany podzbiór wierszy w partycji, na której działa funkcja agregacji lub okna analitycznego.
Składnia
{ 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 }
Parametry
frame_mode
WIERSZE
Jeśli zostanie określony, przesuwana ramka okna jest wyrażona pod względem wierszy poprzedzających lub po bieżącym wierszu.
ZAKRES
Jeśli zostanie określona, funkcja okna musi określić klauzulę ORDER BY (Databricks SQL) z pojedynczym wyrażeniem
obExpr
.Granice okna przesuwanego są następnie wyrażane jako przesunięcie z
obExpr
bieżącego wiersza.
frame_start
Pozycja początkowa przesuwanej ramki okna względem bieżącego wiersza.
NIEZWIĄZANE POPRZEDNIE
Określa, że ramka okna zaczyna się na początku partycji.
offset_start poprzednie
Jeśli tryb to
ROWS
,offset_start
jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przed bieżącym wierszem, który rozpoczyna ramka.Jeśli tryb to
RANGE
,offset_start
jest dodatnią wartością literału typu, który można odjąć odobExpr
. Ramka rozpoczyna się w pierwszym wierszu partycji, dla którejobExpr
jest większy lub równyobExpr - offset_start
w bieżącym wierszu.BIEŻĄCY WIERSZ
Określa, że ramka rozpoczyna się od bieżącego wiersza.
offset_start PONIŻEJ
Jeśli tryb to
ROWS
,offset_start
jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przeszłości do bieżącego wiersza, który rozpoczyna ramka. Jeśli tryb toRANGE
,offset_start
jest dodatnią wartością literału typu, który można dodać doobExpr
elementu . Ramka rozpoczyna się w pierwszym wierszu partycji, dla którejobExpr
jest większy lub równyobExpr + offset_start
w bieżącym wierszu.
frame_stop
Koniec przesuwanej ramki okna względem bieżącego wiersza.
Jeśli nie zostanie określona, ramka zostanie zatrzymana w bieżącym wierszu. Koniec okna przesuwanego musi być większy niż początek okna.
offset_start poprzednie
Jeśli frame_mode to
ROWS
,offset_stop
jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przed bieżącym wierszem, który zatrzymuje ramka. Jeśli frame_mode toRANGE
,offset_stop
jest dodatnią wartością literału tego samego typu cooffset_start
. Ramka kończy się ostatnim wierszem poza partycją, dla którejobExpr
wartość jest mniejsza lub równaobExpr - offset_stop
bieżącemu wierszowi.BIEŻĄCY WIERSZ
Określa, że ramka zatrzymuje się w bieżącym wierszu.
offsetStop FOLLOWING
Jeśli frame_mode to
ROWS
,offset_stop
jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy przeszłości do bieżącego wiersza, który kończy ramka. Jeśli frame_mode toRANGE
,offset_stop
jest dodatnią wartością literału tego samego typu cooffset_start
. Ramka kończy się ostatnim wierszem partycji, dla którejobExpr
wartość jest mniejsza lub równaobExpr + offset_stop
bieżącemu wierszowi.NIEZWIĄZANE Z NASTĘPUJĄCYMI
Określa, że ramka okna zatrzymuje się na końcu partycji.