Справочник по функциям

FIRST_VALUE

Возвращает значение column из первой строки рамки окна.

PostgreSQL 17.9
FIRST_VALUE(column)
column
Столбец или выражение, значение которого нужно вернуть

Возвращаемое значение

Значение того же типа, что и column

Примеры

Самый старший в каждом статусе

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

Разница с первой покупкой

PostgreSQL 17.9
SELECT family_member,
	date,
	unit_price,
	unit_price - FIRST_VALUE(unit_price) OVER (
		PARTITION BY family_member
		ORDER BY date
	) AS diff_from_first
FROM Payments
ORDER BY family_member,
	date;
family_memberdateunit_pricediff_from_first
12005-02-0380
12005-02-1220001992
12005-03-117-1
12005-04-2080
12005-05-137-1
12005-06-05300292
12006-01-15100009992
12006-03-12102
22005-03-1880
22005-03-2321002092

Подробности

Рамка по умолчанию всегда начинается с первой строки раздела, поэтому без явной рамки функция возвращает первое значение раздела. Как задать другую рамку, описано в ROWS BETWEEN.

Смотрите также

Где изучить