Klauzula ramka okna
Dotyczy: Databricks SQL Databricks Runtime
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ślona, ramka okna przesuwanego jest wyrażona w odniesieniu do wierszy poprzedzających lub po bieżącym wierszu.
ZAKRES
Jeśli zostanie określona, funkcja okna musi określić klauzulę ORDER BY z pojedynczym wyrażeniem
obExpr
.Granice okna przesuwanego są następnie wyrażane jako przesunięcie od
obExpr
wartości dla bieżącego wiersza.
frame_start
Pozycja początkowa przesuwanej ramki okna względem bieżącego wiersza.
NIEZWIĄZANE POPRZEDNIE
Określa, że ramka okna rozpoczyna 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
klasy . Ramka rozpoczyna się od pierwszego wiersza 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 NASTĘPUJĄCE
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 uruchamianej ramki. Jeśli tryb toRANGE
,offset_start
jest dodatnią wartością literału typu, który można dodać doobExpr
klasy . Ramka rozpoczyna się od pierwszego wiersza 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 zatrzymana 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 PO
Jeśli frame_mode to
ROWS
,offset_stop
jest dodatnią liczbą literału całkowitego definiującą liczbę wierszy wklejanych do bieżącego wiersza, na których kończy się 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.