Share via


Cláusula de marco de ventana

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí 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 de obExpr. El marco comienza en la primera fila de la partición para la que obExpr es mayor o igual a obExpr - 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 es RANGE, offset_start es un valor literal positivo de un tipo que se puede sumar a obExpr. El marco comienza en la primera fila de la partición para la que obExpr es mayor o igual a obExpr + 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 es RANGE, offset_stop es un valor literal positivo del mismo tipo que offset_start. El marco finaliza en la última fila fuera de la partición para la que obExpr es menor o igual a obExpr - 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 es RANGE, offset_stop es un valor literal positivo del mismo tipo que offset_start. El marco finaliza en la última fila de la partición para la que obExpr es menor o igual a obExpr + offset_stop en la fila actual.

    • UNBOUNDED FOLLOWING

      Especifica que el marco de la ventana termina al final de la partición.