Klauzule okenního rámce
Platí pro: Databricks SQL Databricks Runtime
Určuje posuvnou podmnožinu řádků v 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
frame_start
Počáteční pozice posuvného rámečku okna vzhledem k aktuálnímu řádku.
NEVÁZANÉ PŘEDCHOZÍ
Určuje, že rámec okna začíná na začátku oddílu.
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 oddílu,obExpr
jehož hodnota je větší nebo rovnaobExpr - offset_start
aktuálnímu řá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 oddílu,obExpr
jehož hodnota je větší nebo rovnaobExpr + offset_start
aktuálnímu řádku.
frame_stop
Konec posuvného rámečku okna vzhledem k aktuálnímu řádku.
Pokud není zadaný, zastavuje se rámeček na AKTUÁLNÍM ŘÁDKU. Konec posuvného okna musí být větší než začátek rámečku okna.
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 oddíl,obExpr
jehož hodnota je menší nebo rovnaobExpr - offset_stop
aktuálnímu řá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ámec končí na posledním řádku oddílu,obExpr
jehož hodnota je menší nebo rovnaobExpr + offset_stop
aktuálnímu řádku.NEVÁZANÉ NÁSLEDUJÍCÍ
Určuje, že se rám okna zastaví na konci oddílu.