klauzule Window frame
Platí pro: Databricks SQL Databricks Runtime
Určuje posuvnou podmnožinu řádků v rámci partition, na které funguje agregační nebo analytická window funkce.
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 }
Parameters
frame_mode
řádky
Je-li zadáno, posuvný window rámec je vyjádřen z hlediska řádků předcházejících nebo za aktuálním řádkem.
ROZMEZÍ
Pokud je zadáno, musí funkce window zadat klauzuli ORDER BY s jedním výrazem
obExpr
.Hranice posuvného window jsou poté vyjádřeny jako offset z
obExpr
pro aktuální řádek.
frame_start
Počáteční pozice posuvného window rámu vzhledem k aktuálnímu řádku.
NEVÁZANÉ PŘEDCHOZÍ
Určuje, že rámec window začíná na začátku partition.
offset_start PŘEDCHÁZEJÍCÍ
Pokud je
ROWS
režim ,offset_start
je kladné celočíselné číslo literálu definující, kolik řádků před aktuálním řádkem se rámec spustí.Pokud je
RANGE
režim ,offset_start
je kladné literál hodnota typu, který lze odečíst odobExpr
. Rámec začíná na prvním řádku partition, pro který platí, žeobExpr
je větší nebo rovenobExpr - offset_start
v rámci aktuálního řádku.AKTUÁLNÍ ŘÁDEK
Určuje, že rámec začíná na aktuálním řádku.
offset_start NÁSLEDUJÍCÍ
Pokud je
ROWS
režim ,offset_start
je kladné celočíselné číslo literálu definující, kolik řádků za aktuálním řádkem se rámec spustí. Pokud jeRANGE
režim ,offset_start
je kladné literál hodnota typu, který lze přidat doobExpr
. Rámec začíná na prvním řádku partition, pro který jeobExpr
větší nebo rovenobExpr + offset_start
na aktuálním řádku.
frame_stop
Koncový bod posuvného window rámu ve vztahu k aktuálnímu řádku.
Pokud není zadaný, zastavuje se rámeček na AKTUÁLNÍM ŘÁDKU. Konec posuvného window musí být větší než začátek window rámu.
offset_start PŘEDCHÁZEJÍCÍ
Pokud je frame_mode
ROWS
,offset_stop
je kladné celočíselné číslo literálu definující, kolik řádků před aktuálním řádkem se rámec zastaví. Pokud je frame_modeRANGE
,offset_stop
je kladná literálová hodnota stejného typu jakooffset_start
. Rámec končí na posledním řádku mimo partition, pro který jeobExpr
menší nebo rovenobExpr - offset_stop
na aktuálním řádku.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é celočíselné číslo literálu definující, kolik řádků za aktuálním řádkem končí rámec. Pokud je frame_modeRANGE
,offset_stop
je kladná literálová hodnota stejného typu jakooffset_start
. Rámeček končí na posledním řádku partition, u kterého jeobExpr
na aktuálním řádku menší nebo rovenobExpr + offset_stop
.NEVÁZANÉ NÁSLEDUJÍCÍ
Určuje, že rámec window končí na konci partition.