Window, klauzula frame
Dotyczy: Databricks SQL Databricks Runtime
Określa przesuwany podzestaw wierszy w partition, na którym działa funkcja agregacji lub analizy window.
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 }
Parameters
frame_mode
WIERSZE
Jeśli zostanie określona, ramka przesuwana window jest wyrażona w stosunku do wierszy poprzedzających lub następujących po bieżącym wierszu.
ZAKRES
Jeśli zostanie określona, funkcja window musi określić klauzulę ORDER BY z pojedynczym wyrażeniem
obExpr
.Granice przesuwanych window są następnie wyrażane jako offset z
obExpr
dla bieżącego wiersza.
frame_start
Pozycja początkowa przesuwanej ramki window względem bieżącego wiersza.
NIEZWIĄZANE POPRZEDNIE
Określa, że ramka window rozpoczyna się od początku partition.
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 partition, dla któregoobExpr
w bieżącym wierszu jest większe lub równeobExpr - offset_start
.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 partition, dla któregoobExpr
jest większe lub równeobExpr + offset_start
w bieżącym wierszu.
frame_stop
Koniec przesuwanej ramki window względem bieżącego wiersza.
Jeśli nie zostanie określona, ramka zostanie zatrzymana w bieżącym wierszu. Koniec przesuwanej window musi być większy niż początek ramki window.
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 partition, dla któregoobExpr
jest mniejsza lub równaobExpr - offset_stop
w bieżącym wierszu.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ę na ostatnim wierszu partition, dla któregoobExpr
jest mniejszy lub równyobExpr + offset_stop
w bieżącym wierszu.NIEZWIĄZANE Z NASTĘPUJĄCYMI
Określa, że ramka window zatrzymuje się na końcu partition.