Funciones de ventana DDSQL (Vista previa)

Información general

Una función de ventana aplica una agregación a un subconjunto de las filas seleccionadas por una consulta. Las filas seleccionadas se conservan en el resultado de la consulta, en lugar de agruparse en una única fila como ocurriría en una agregación sin ventana.

Para obtener más información sobre el funcionamiento de las funciones de ventana, consulta la documentación de Postgres para funciones de ventana.

Sintaxis

function_name ([expression [, expression ...]]) OVER (
  [ PARTITION BY expression [, ...] ]
  [ ORDER BY expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] ]
  [ frame_clause ]
)

La frame_clause opcional tiene la siguiente sintaxis:

{ RANGE | ROWS } frame_start
| { RANGE | ROWS } BETWEEN frame_start AND frame_end

Las expresiones frame_start y frame_end pueden ser una de las siguientes:

  • UNBOUNDED PRECEDING
  • offset PRECEDING
  • CURRENT ROW
  • offset FOLLOWING
  • UNBOUNDED FOLLOWING

Funciones

Las siguientes funciones pueden utilizarse en ventanas, junto con funciones de agregación.

número_de_fila

NombreTipo de devoluciónDescripción
número_filas()enteroDevuelve el número de la fila actual dentro de su partición, contando desde 1.

rango

NombreTipo de devoluciónDescripción
rango()enteroDevuelve el rango de la fila actual, con espacios (el row_number de la primera fila en su grupo de pares).

rango_denso

NombreTipo de devoluciónDescripción
rango_denso()enteroDevuelve el rango de la fila actual, sin espacios. Esta función efectivamente cuenta grupos de pares.

primer_valor

NombreTipo de devoluciónDescripción
primer_valor(valor T)TDevuelve el valor evaluado en la fila que es la primera fila del marco de la ventana.

último_valor

NombreTipo de devoluciónDescripción
último_valor(valor T)TDevuelve el valor evaluado en la fila que es la última fila del marco de la ventana.