Cláusula de marco de ventana
Se aplica a: Databricks SQL Databricks Runtime
Especifica un subconjunto deslizante de filas dentro de la partición en la que opera la función de ventana de agregado o analítica.
Sintaxis
{ 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
Si se especifica, el marco de la ventana deslizante se expresa en términos de filas anteriores o siguientes a la fila actual.
RANGE
Si se especifica, la función de ventana debe especificar una cláusula ORDER BY con una sola expresión
obExpr
.A continuación, los límites de la ventana deslizante se expresan como un desplazamiento desde
obExpr
para la fila actual.
frame_start
Posición inicial del marco de la ventana deslizante con respecto a la fila actual.
UNBOUNDED PRECEDING
Especifica que el marco de la ventana comienza al principio de la partición.
offset_start PRECEDING
Si el modo es
ROWS
,offset_start
es el número literal integral positivo que define cuántas filas antes de la fila actual se inicia el marco.Si el modo es
RANGE
,offset_start
es un valor literal positivo de un tipo que se puede restar deobExpr
. El marco comienza en la primera fila de la partición para la queobExpr
es mayor o igual aobExpr - offset_start
en la fila actual.CURRENT ROW
Especifica que el marco comienza en la fila actual.
offset_start FOLLOWING
Si el modo es
ROWS
,offset_start
es el número literal integral positivo que define cuántas filas después de la fila actual se inicia el marco. Si el modo esRANGE
,offset_start
es un valor literal positivo de un tipo que se puede sumar aobExpr
. El marco comienza en la primera fila de la partición para la queobExpr
es mayor o igual aobExpr + offset_start
en la fila actual.
frame_stop
Posición final del marco de la ventana deslizante con respecto a la fila actual.
Si no se especifica, el marco se detiene en CURRENT ROW. La posición final de la ventana deslizante debe ser mayor que la posición inicial del marco de la ventana.
offset_start PRECEDING
Si frame_mode es
ROWS
,offset_stop
es el número literal integral positivo que define cuántas filas antes de la fila actual se detiene el marco. Si frame_mode esRANGE
,offset_stop
es un valor literal positivo del mismo tipo queoffset_start
. El marco finaliza en la última fila fuera de la partición para la queobExpr
es menor o igual aobExpr - offset_stop
en la fila actual.CURRENT ROW
Especifica que el marco se detiene en la fila actual.
offsetStop FOLLOWING
Si frame_mode es
ROWS
,offset_stop
es el número literal integral positivo que define cuántas filas después de la fila actual finaliza el marco. Si frame_mode esRANGE
,offset_stop
es un valor literal positivo del mismo tipo queoffset_start
. El marco finaliza en la última fila de la partición para la queobExpr
es menor o igual aobExpr + offset_stop
en la fila actual.UNBOUNDED FOLLOWING
Especifica que el marco de la ventana termina al final de la partición.