Sdílet prostřednictvím


Klauzule okenního rámce

Platí pro:zaškrtnuto Databricks SQL zaškrtnuto Databricks Runtime

Určuje posuvnou podmnožinu řádků v oddílu, na kterém se uplatňuje 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 jsou pak vyjádřeny jako posun od obExpr pro aktuální řádek.

  • 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 RANGE režim, offset_start je kladná literální hodnota typu, kterou lze odečíst od obExpr. Rámec začíná na prvním řádku oddílu, pro který je obExpr větší nebo roven obExpr - offset_start v aktuálním řádku.

    • AKTUÁLNÍ ŘÁDEK

      Určuje, že rámec začíná na aktuálním řádku.

    • offset_start NÁSLEDUJÍCÍ

      Pokud je režim ROWS, offset_start je kladný celočíselný literál definující, kolik řádků za aktuálním řádkem rámec začne. Pokud je RANGE je režim, offset_start je kladná literálová hodnota typu, kterou lze přidat do obExpr. Rámec začíná na prvním řádku oddílu, pro který je obExpr větší nebo roven obExpr + offset_start v aktuálním řádku.

  • frame_stop

    Konec posuvného rámu okna relativně k aktuálnímu řádku.

    Pokud není zadán, rámeček se zastavuje 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ý literál, který určuje, 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, pro který je obExpr menší nebo roven obExpr - offset_stop na aktuálním řádku.

    • AKTUÁLNÍ ŘÁDEK

      Určuje, že se snímek zastaví na aktuálním řádku.

    • offsetStop NÁSLEDUJÍCÍ

      Pokud je frame_mode ROWS, offset_stop je kladný celočíselný literál definující, kolik řádků po aktuálním řádku rámec končí. 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, ve kterém je na aktuálním řádku obExpr menší nebo roven obExpr + offset_stop.

    • NEOMEZENÉ NÁSLEDOVÁNÍ

      Určuje, že se rám okna zastaví na konci přepážky.