Clausola frame di finestra

Si applica a:check contrassegnato sì controllo SQL databricks contrassegnato come sì Databricks Runtime

Specifica un subset scorrevole di righe all'interno della partizione in cui funziona la funzione di finestra di aggregazione o analisi.

Sintassi

{ 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 }

Parametri

  • frame_mode

    • RIGHE

      Se specificato, la cornice della finestra scorrevole viene espressa in termini di righe precedenti o seguendo la riga corrente.

    • GAMMA

      Se specificato, la funzione della finestra deve specificare una clausola ORDER BY con un'unica espressione obExpr.

      I limiti della finestra scorrevole vengono quindi espressi come offset dalla obExpr riga corrente.

  • frame_start

    Posizione iniziale del frame di finestra scorrevole rispetto alla riga corrente.

    • PRECEDENTE NON ASSOCIATO

      Specifica che il frame della finestra inizia all'inizio della partizione.

    • offset_start PRECEDENTE

      Se la modalità è , offset_start è ROWSil numero letterale integrale positivo che definisce il numero di righe prima dell'avvio della riga corrente.

      Se la modalità è , offset_start è RANGEun valore letterale positivo di un tipo che può essere sottratto da obExpr. Il frame inizia alla prima riga della partizione per cui obExpr è maggiore o uguale alla obExpr - offset_start riga corrente.

    • RIGA CORRENTE

      Specifica che il frame inizia alla riga corrente.

    • offset_start SEGUENTE

      Se la modalità è ROWS, offset_start è il numero letterale integrale positivo che definisce il numero di righe passate alla riga corrente che inizia. Se la modalità è , offset_start è RANGEun valore letterale positivo di un tipo che può essere aggiunto a obExpr. Il frame inizia alla prima riga della partizione per cui obExpr è maggiore o uguale alla obExpr + offset_start riga corrente.

  • frame_stop

    Fine della cornice della finestra scorrevole rispetto alla riga corrente.

    Se non specificato, il frame si arresta nella RIGA CORRENTE. La fine della finestra scorrevole deve essere maggiore dell'inizio della cornice della finestra.

    • offset_start PRECEDENTE

      Se frame_mode è , offset_stop è ROWSil numero letterale integrale positivo che definisce il numero di righe prima dell'arresto della riga corrente. Se frame_mode è , offset_stop è RANGEun valore letterale positivo dello stesso tipo di offset_start. Il frame termina all'ultima riga fuori dalla partizione per cui obExpr è minore o uguale a obExpr - offset_stop in corrispondenza della riga corrente.

    • RIGA CORRENTE

      Specifica che il frame si arresta nella riga corrente.

    • offsetStop FOLLOWING

      Se frame_mode è ROWS, offset_stop è il numero letterale integrale positivo che definisce il numero di righe passate alla riga corrente alla fine del frame. Se frame_mode è , offset_stop è RANGEun valore letterale positivo dello stesso tipo di offset_start. Il frame termina all'ultima riga della partizione per cui obExpr è minore o uguale alla obExpr + offset_stop riga corrente.

    • UNBOUNDED FOLLOWING

      Specifica che il frame della finestra si arresta alla fine della partizione.