Klauzule okenního rámečku
Platí pro: , kontrola Databricks SQL Databricks Runtime
Určuje posuvnou podmnožinu řádků v rámci oddílu, na kterém funguje agregační nebo analytická funkce okna.
Syntaxe
{ 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
ŘÁDKY
Je-li zadán, je posuvný rámeček okna vyjádřen v řádcích předcházejících nebo za aktuálním řádkem.
ROZSAH
Pokud je zadán, musí funkce window zadat klauzuli ORDER BY s jedním výrazem
obExpr
.Hranice posuvného okna jsou pak vyjádřeny jako posun od
obExpr
aktuálního řádku.
frame_start
Počáteční pozice posuvného rámečku okna vzhledem k aktuálnímu řádku.
BEZ VAZBY PŘED
Určuje, že rámeček okna začíná na začátku oddílu.
offset_start PŘEDCHÁZEJÍCÍ
Pokud je
ROWS
režim ,offset_start
je kladné číslo celočíselného literálu definující, kolik řádků před aktuálním řádkem rámeček začíná.Pokud je
RANGE
režim ,offset_start
je kladná hodnota literálu typu, kterou lze odečíst odobExpr
. Rámec začíná prvním řádkem oddílu, jehožobExpr
hodnota je větší nebo rovnaobExpr - offset_start
aktuálnímu řádku.AKTUÁLNÍ ŘÁDEK
Určuje, že rámeček začíná aktuálním řádkem.
offset_start NÁSLEDUJÍCÍ
Pokud je
ROWS
režim ,offset_start
je kladné číslo celočíselného literálu definující počet řádků po aktuální řádek, který rámeček začíná. Pokud jeRANGE
režim ,offset_start
je kladná hodnota literálu typu, kterou lze přidat doobExpr
. Rámec začíná prvním řádkem oddílu, jehožobExpr
hodnota je větší nebo rovnaobExpr + offset_start
aktuálnímu řádku.
frame_stop
Konec rámečku posuvného okna vzhledem k aktuálnímu řádku.
Pokud není zadán, rámeček se zastaví na AKTUÁLNÍM ŘÁDKU. Konec posuvného okna musí být větší než začátek rámu okna.
offset_start PŘEDCHÁZEJÍCÍ
Pokud je frame_mode
ROWS
,offset_stop
je kladné číslo celočíselného literálu definující, kolik řádků před aktuálním řádkem rámeček zastaví. Pokud jeRANGE
frame_mode ,offset_stop
je kladná hodnota literálu stejného typu jakooffset_start
. Rámec končí posledním řádkem mimo oddíl, jehožobExpr
hodnota je na aktuálním řádku menší nebo rovnaobExpr - offset_stop
.AKTUÁLNÍ ŘÁDEK
Určuje, že se rámeček zastaví na aktuálním řádku.
offsetStop FOLLOWING
Pokud je frame_mode
ROWS
,offset_stop
je kladné číslo celočíselného literálu definující, kolik řádků za aktuálním řádkem rámeček končí. Pokud jeRANGE
frame_mode ,offset_stop
je kladná hodnota literálu stejného typu jakooffset_start
. Rámec končí na posledním řádku oddílu, jehožobExpr
hodnota je na aktuálním řádku menší nebo rovnaobExpr + offset_stop
.BEZ VAZBY NÁSLEDUJÍCÍ
Určuje, že se rámeček okna zastaví na konci oddílu.