Cláusula de quadro de janela
Aplica-se a: SQL do Databricks Runtime do Databricks
Especifica um subconjunto deslizante de linhas dentro da partição na qual opera a função da janela de agregação ou análise.
Sintaxe
{ 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 }
Parâmetros
frame_mode
ROWS
Se especificado, o quadro da janela deslizante é expresso em termos de linhas que precedem ou seguem a linha atual.
RANGE
Se especificado, a função da janela deve especificar uma cláusula ORDENAR POR com uma única expressão
obExpr
.Os limites da janela deslizante são expressos como um deslocamento do
obExpr
para a linha atual.
frame_start
A posição inicial do quadro da janela deslizante em relação à linha atual.
UNBOUNDED PRECEDING
Especifica que o quadro da janela começa no início da partição.
offset_start PRECEDING
Se o modo for
ROWS
,offset_start
será o número literal integral positivo que define quantas linhas antes da linha atual o quadro será iniciado.Se o modo for
RANGE
,offset_start
será um valor literal positivo de um tipo que pode ser subtraído deobExpr
. O quadro começa na primeira linha da partição para a qualobExpr
é maior ou igualobExpr - offset_start
a na linha atual.CURRENT ROW
Especifica que o quadro começa na linha atual.
offset_start FOLLOWING
Se o modo for
ROWS
,offset_start
será o número literal integral positivo que define quantas linhas depois da linha atual o quadro será iniciado. Se o modo forRANGE
,offset_start
será um valor literal positivo de um tipo que pode ser adicionado aobExpr
. O quadro começa na primeira linha da partição para a qualobExpr
é maior ou igualobExpr + offset_start
a na linha atual.
frame_stop
O final do quadro da janela deslizante em relação à linha atual.
Se não for especificado, o quadro será interrompido na CURRENT ROW. O final da janela deslizante deve ser maior que o início do quadro da janela.
offset_start PRECEDING
Se frame_mode for
ROWS
,offset_stop
será o número literal integral positivo que define quantas linhas antes da linha atual o quadro será interrompido. Se frame_mode forRANGE
,offset_stop
será um valor literal positivo do mesmo tipo queoffset_start
. O quadro termina na última linha da partição para a qualobExpr
é menor ou igualobExpr - offset_stop
a na linha atual.CURRENT ROW
Especifica que o quadro é interrompido na linha atual.
offsetStop FOLLOWING
Se frame_mode for
ROWS
,offset_stop
será o número literal integral positivo que define quantas linhas depois da linha atual o quadro termina. Se frame_mode forRANGE
,offset_stop
será um valor literal positivo do mesmo tipo queoffset_start
. O quadro termina na última linha da partição para a qualobExpr
é menor ou igualobExpr + offset_stop
a na linha atual.UNBOUNDED FOLLOWING
Especifica que o quadro da janela para no final da partição.