Clausola frame di finestra
Si applica a: controllo SQL databricks 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
èROWS
il numero letterale integrale positivo che definisce il numero di righe prima dell'avvio della riga corrente.Se la modalità è ,
offset_start
èRANGE
un valore letterale positivo di un tipo che può essere sottratto daobExpr
. Il frame inizia alla prima riga della partizione per cuiobExpr
è maggiore o uguale allaobExpr - 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
èRANGE
un valore letterale positivo di un tipo che può essere aggiunto aobExpr
. Il frame inizia alla prima riga della partizione per cuiobExpr
è maggiore o uguale allaobExpr + 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
èROWS
il numero letterale integrale positivo che definisce il numero di righe prima dell'arresto della riga corrente. Se frame_mode è ,offset_stop
èRANGE
un valore letterale positivo dello stesso tipo dioffset_start
. Il frame termina all'ultima riga fuori dalla partizione per cuiobExpr
è minore o uguale aobExpr - 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
èRANGE
un valore letterale positivo dello stesso tipo dioffset_start
. Il frame termina all'ultima riga della partizione per cuiobExpr
è minore o uguale allaobExpr + offset_stop
riga corrente.UNBOUNDED FOLLOWING
Specifica che il frame della finestra si arresta alla fine della partizione.