Sdílet prostřednictvím


Klauzule okenního rámečku

Platí pro:zaškrtnutá možnost Ano , kontrola Databricks SQL označená ano 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 ROWSrež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 RANGErežim , offset_start je kladná hodnota literálu typu, kterou lze odečíst od obExpr. Rámec začíná prvním řádkem oddílu, jehož obExpr hodnota je větší nebo rovna obExpr - 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 ROWSrež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 je RANGErežim , offset_start je kladná hodnota literálu typu, kterou lze přidat do obExpr. Rámec začíná prvním řádkem oddílu, jehož obExpr hodnota je větší nebo rovna obExpr + 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 je RANGEframe_mode , offset_stop je kladná hodnota literálu stejného typu jako offset_start. Rámec končí posledním řádkem mimo oddíl, jehož obExpr hodnota je na aktuálním řádku menší nebo rovna obExpr - 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 je RANGEframe_mode , offset_stop je kladná hodnota literálu stejného typu jako offset_start. Rámec končí na posledním řádku oddílu, jehož obExpr hodnota je na aktuálním řádku menší nebo rovna obExpr + offset_stop .

    • BEZ VAZBY NÁSLEDUJÍCÍ

      Určuje, že se rámeček okna zastaví na konci oddílu.