Si encuentras algún detalle que no comprendes puedes dejarlo en la sección de comentarios y te ayudaremos lo mas rápido que podamos.
Funciones de ventana proporcionan la capacidad de realizar cálculos en conjuntos de filas que están relacionadas con la fila de consulta actual. Consulte la Sección 3.5 para obtener una introducción a esta función y la Sección 4.2.8 para obtener detalles sobre la sintaxis.
Las funciones de la ventana incorporadas se enumeran en la Tabla 9.60. Tenga en cuenta que estas funciones debe ser invocado usando la sintaxis de la función de ventana, es decir, una OVER
Se requiere una cláusula.
Además de estas funciones, cualquier agregado ordinario incorporado o definido por el usuario (es decir, agregados no de conjuntos ordenados o conjuntos hipotéticos) se puede utilizar como función de ventana; consulte la Sección 9.21 para obtener una lista de los agregados incorporados. Las funciones agregadas actúan como funciones de ventana solo cuando un OVER
la cláusula sigue a la llamada; de lo contrario, actúan como agregados simples y devuelven una sola fila para todo el conjunto.
Cuadro 9.60. Funciones de ventana de uso general
Función Descripción |
---|
Devuelve el número de la fila actual dentro de su partición, contando desde 1. |
Devuelve el rango de la fila actual, con espacios; eso es el |
Devuelve el rango de la fila actual, sin espacios; esta función cuenta efectivamente los grupos de pares. |
Devuelve el rango relativo de la fila actual, es decir ( |
Devuelve la distribución acumulativa, es decir (número de filas de partición anteriores o pares con fila actual) / (filas de partición totales). Por tanto, el valor oscila entre 1 / |
Devuelve un número entero que va desde 1 hasta el valor del argumento, dividiendo la partición lo más equitativamente posible. |
Devoluciones |
Devoluciones |
Devoluciones |
Devoluciones |
Devoluciones |
Todas las funciones enumeradas en la Tabla 9.60 dependen del orden de clasificación especificado por el ORDER BY
cláusula de la definición de ventana asociada. Filas que no son distintas al considerar solo el ORDER BY
se dice que las columnas son compañeros. Las cuatro funciones de clasificación (incluidas cume_dist
) se definen de modo que den la misma respuesta para todas las filas de un grupo de pares.
Tenga en cuenta que first_value
, last_value
, y nth_value
considere solo las filas dentro del “marco de la ventana“, que por defecto contiene las filas desde el inicio de la partición hasta el último par de la fila actual. Es probable que esto dé resultados inútiles para last_value
y a veces también nth_value
. Puede redefinir el marco agregando una especificación de marco adecuada (RANGE
, ROWS
o GROUPS
) al OVER
cláusula. Consulte la Sección 4.2.8 para obtener más información sobre las especificaciones del marco.
Cuando una función agregada se utiliza como función de ventana, se agrega sobre las filas dentro del marco de la ventana de la fila actual. Un agregado usado con ORDER BY
y la definición de marco de ventana predeterminada produce una “suma corriente“ tipo de comportamiento, que puede ser o no lo que se desea. Para obtener agregación en toda la partición, omita ORDER BY
o usar ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
. Se pueden utilizar otras especificaciones de marco para obtener otros efectos.
Nota
El estándar SQL define un
RESPECT NULLS
oIGNORE NULLS
opción paralead
,lag
,first_value
,last_value
, ynth_value
. Esto no está implementado en PostgreSQL: el comportamiento es siempre el mismo que el estándar por defecto, es decirRESPECT NULLS
. Asimismo, el estándarFROM FIRST
oFROM LAST
opción paranth_value
no está implementado: solo el predeterminadoFROM FIRST
el comportamiento es compatible. (Puede lograr el resultado deFROM LAST
invirtiendo elORDER BY
ordenar.)
Anterior | Hasta | próximo |
9.21. Funciones agregadas | Hogar | 9.23. Expresiones de subconsultas |
Finalizando este artículo puedes encontrar las explicaciones de otros desarrolladores, tú asimismo eres capaz insertar el tuyo si lo crees conveniente.