Sdílet prostřednictvím


Klauzule okenního rámce

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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

    • řádky

      Je-li zadáno, posuvný rámeček okna 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 okna zadat klauzuli ORDER BY s jedním výrazem obExpr.

      Hranice posuvného okna se pak vyjadřují 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.

    • 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 ROWSrež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 RANGErežim , offset_start je kladné literál hodnota typu, který lze odečíst od obExpr. Rámec začíná na prvním řádku oddílu, obExpr jehož hodnota je větší nebo rovna obExpr - 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 ROWSrežim , offset_start je kladné celočíselné číslo literálu definující, kolik řádků za aktuálním řádkem se rámec spustí. Pokud je RANGErežim , offset_start je kladné literál hodnota typu, který lze přidat do obExpr. Rámec začíná na prvním řádku oddílu, obExpr jehož hodnota je větší nebo rovna obExpr + 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_mode RANGE, offset_stop je kladná literálová hodnota stejného typu jako offset_start. Rámec končí na posledním řádku mimo oddíl, obExpr jehož hodnota je menší nebo rovna obExpr - 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_mode RANGE, offset_stop je kladná literálová hodnota stejného typu jako offset_start. Rámec končí na posledním řádku oddílu, obExpr jehož hodnota je menší nebo rovna obExpr + offset_stop aktuálnímu řádku.

    • NEVÁZANÉ NÁSLEDUJÍCÍ

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