NTH_VALUE
Devuelve el valor de column de la fila n del marco de la ventana.
PostgreSQL 17.9
NTH_VALUE(column, n)- column
- Columna o expresión cuyo valor se devuelve
- n
- Número de la fila en el marco, empezando por 1integer
Valor devuelto
Valor del tipo de column; NULL si el marco tiene menos de n filas
Ejemplos
Segundo miembro de más edad con el marco por defecto
PostgreSQL 17.9
SELECT member_name,
birthday,
NTH_VALUE(member_name, 2) OVER (
ORDER BY birthday
) AS second_oldest
FROM FamilyMembers;Segundo miembro de más edad en toda la partición
PostgreSQL 17.9
SELECT member_name,
birthday,
NTH_VALUE(member_name, 2) OVER (
ORDER BY birthday ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS second_oldest
FROM FamilyMembers;Detalles
El marco por defecto va desde el inicio de la partición hasta la fila actual y las filas con el mismo valor en ORDER BY; sin ORDER BY, es toda la partición. Por eso, con el marco por defecto, las primeras n − 1 filas de una partición reciben NULL: la fila n todavía no está en su marco. Para que todas las filas reciban el mismo valor, extiende el marco a toda la partición: ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.