LAST_VALUE
Возвращает значение column из последней строки рамки окна.
PostgreSQL 17.9
LAST_VALUE(column)- column
- Столбец или выражение, значение которого нужно вернуть
Возвращаемое значение
Значение того же типа, что и column
Примеры
Самый младший в каждом статусе
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;Рамка по умолчанию — до текущей строки
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;Подробности
С ORDER BY рамка по умолчанию заканчивается текущей строкой (и строками с тем же значением ORDER BY), а не концом раздела, поэтому без явной рамки функция часто возвращает значение текущей строки; без ORDER BY рамка — весь раздел. Чтобы взять последнее значение всего раздела, задайте рамку ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.