LAST_VALUE
Devuelve el valor de column de la última fila del marco de la ventana.
LAST_VALUE(column)- column
- Columna o expresión cuyo valor se devuelve
Valor devuelto
Valor del tipo de column
Ejemplos
El miembro más joven de cada estado
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;El marco por defecto termina en la fila actual
SELECT member_name,
status,
birthday,
LAST_VALUE(member_name) OVER (
PARTITION BY status
ORDER BY birthday
) AS last_in_frame
FROM FamilyMembers;Detalles
El marco por defecto termina en la fila actual (y en las filas con el mismo valor de ORDER BY), no al final de la partición, así que sin un marco propio la función suele devolver el valor de la fila actual. Para obtener el último valor de la partición, define el marco como ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.
El marco define qué filas de la partición ve la función y se escribe después de ORDER BY: ROWS BETWEEN frame_start AND frame_end cuenta filas, mientras que RANGE BETWEEN frame_start AND frame_end usa los valores de ORDER BY.
Sin marco se aplica la regla por defecto. Si OVER tiene ORDER BY, el marco va desde el inicio de la partición hasta la fila actual, incluidas las filas con el mismo valor de ORDER BY. Sin ORDER BY, el marco es toda la partición.