Referencia de funciones

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 1
integer

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;
member_namebirthdaysecond_oldest
Headley Quincey1960-05-13<NULL>
Ernest Forrest1961-09-11Ernest Forrest
Flavia Quincey1963-02-16Ernest Forrest
Constance Forrest1968-09-06Ernest Forrest
Andie Quincey1983-06-05Ernest Forrest
Lela Quincey1985-06-07Ernest Forrest
Annie Quincey1988-04-10Ernest Forrest
Wednesday Addams2005-01-13Ernest Forrest

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;
member_namebirthdaysecond_oldest
Headley Quincey1960-05-13Ernest Forrest
Ernest Forrest1961-09-11Ernest Forrest
Flavia Quincey1963-02-16Ernest Forrest
Constance Forrest1968-09-06Ernest Forrest
Andie Quincey1983-06-05Ernest Forrest
Lela Quincey1985-06-07Ernest Forrest
Annie Quincey1988-04-10Ernest Forrest
Wednesday Addams2005-01-13Ernest Forrest

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.

Véase también