Condividi tramite


Clausola cornice finestra

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

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

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

    • ROWS

      Se specificato, il frame della finestra scorrevole viene espresso in termini di righe precedenti o successive alla riga corrente.

    • RANGE

      Se specificato, la funzione window deve specificare una clausola ORDER BY con una singola espressione obExpr.

      I limiti della finestra temporale scorrevole vengono quindi espressi come offset dall'oggetto obExpr per la riga corrente.

  • frame_start

    Posizione iniziale della cornice finestra scorrevole rispetto alla riga corrente.

    • UNBOUNDED PRECEDING

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

    • offset_start PRECEDENTE

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

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

    • CURRENT ROW

      Specifica che il frame inizia dalla riga corrente.

    • offset_start FOLLOWING

      Se la modalità è ROWS, offset_start è il numero letterale integrale positivo che definisce il numero di righe passate alla riga corrente che inizia il frame. Se la modalità è RANGE, offset_start è un valore letterale positivo di un tipo che può essere aggiunto a obExpr. Il frame inizia alla prima riga della partizione per la quale 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 in corrispondenza della RIGA CORRENTE. La fine della finestra scorrevole deve essere maggiore dell'inizio della cornice della finestra.

    • offset_start PRECEDENTE

      Se frame_mode è ROWS, offset_stop è il numero letterale integrale positivo che definisce il numero di righe precedenti alla riga corrente arrestata dal frame. Se frame_mode è RANGE, offset_stop è un valore letterale positivo dello stesso tipo di offset_start. Il frame termina all'ultima riga dalla partizione per la quale obExpr è minore o uguale a obExpr - offset_stop nella riga corrente.

    • CURRENT ROW

      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 che termina il frame. Se frame_mode è RANGE, offset_stop è un valore letterale positivo dello stesso tipo di offset_start. Il frame termina all'ultima riga della partizione per la quale obExpr è minore o uguale a obExpr + offset_stop nella riga corrente.

    • UNBOUNDED FOLLOWING

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