Sdílet prostřednictvím


klauzule Window frame

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 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 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 partition, pro který platí, že obExpr je větší nebo roven obExpr - 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 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 partition, pro který je obExpr větší nebo roven obExpr + 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_mode RANGE, offset_stop je kladná literálová hodnota stejného typu jako offset_start. Rámec končí na posledním řádku mimo partition, pro který je obExpr menší nebo roven obExpr - 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_mode RANGE, offset_stop je kladná literálová hodnota stejného typu jako offset_start. Rámeček končí na posledním řádku partition, u kterého je obExpr na aktuálním řádku menší nebo roven obExpr + offset_stop.

    • NEVÁZANÉ NÁSLEDUJÍCÍ

      Určuje, že rámec window končí na konci partition.