Referencia de funciones

LAST_VALUE

Devuelve el valor de column de la última fila del marco de la ventana.

PostgreSQL 17.9
LAST_VALUE(column)
column
Columna o expresión cuyo valor se devuelve

Valor devuelto

Valor del tipo de column

Ejemplos

Miembro más joven por estado

PostgreSQL 17.9
SELECT member_name,
	status,
	birthday,
	LAST_VALUE(member_name) OVER (
		PARTITION BY status
		ORDER BY birthday ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
	) AS youngest_in_status
FROM FamilyMembers;
member_namestatusbirthdayyoungest_in_status
Lela Quinceydaughter1985-06-07Wednesday Addams
Annie Quinceydaughter1988-04-10Wednesday Addams
Wednesday Addamsdaughter2005-01-13Wednesday Addams
Headley Quinceyfather1960-05-13Ernest Forrest
Ernest Forrestfather1961-09-11Ernest Forrest
Flavia Quinceymother1963-02-16Constance Forrest
Constance Forrestmother1968-09-06Constance Forrest
Andie Quinceyson1983-06-05Andie Quincey

El marco por defecto termina en la fila actual

PostgreSQL 17.9
SELECT member_name,
	status,
	birthday,
	LAST_VALUE(member_name) OVER (
		PARTITION BY status
		ORDER BY birthday
	) AS last_in_frame
FROM FamilyMembers;
member_namestatusbirthdaylast_in_frame
Lela Quinceydaughter1985-06-07Lela Quincey
Annie Quinceydaughter1988-04-10Annie Quincey
Wednesday Addamsdaughter2005-01-13Wednesday Addams
Headley Quinceyfather1960-05-13Headley Quincey
Ernest Forrestfather1961-09-11Ernest Forrest
Flavia Quinceymother1963-02-16Flavia Quincey
Constance Forrestmother1968-09-06Constance Forrest
Andie Quinceyson1983-06-05Andie Quincey

Detalles

Con ORDER BY, el marco por defecto termina en la fila actual (y en las filas con el mismo valor en ORDER BY), no al final de la partición. Por eso, sin un marco explícito, la función suele devolver el valor de la fila actual; sin ORDER BY, el marco es toda la partición. Para obtener el último valor de toda la partición, indica el marco ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.

Véase también

Dónde aprenderlo