SQL Academy
Premium
Funktionsreferenz

FIRST_VALUE

Gibt den Wert von column aus der ersten Zeile des Fensterrahmens zurück.

PostgreSQL 17.5
FIRST_VALUE(column) OVER ([PARTITION BY ...] [ORDER BY ...] [frame])

Parameter

column
Spalte oder Ausdruck, dessen Wert zurückgegeben wird
PARTITION BYoptional
Spalten, nach denen die Zeilen in Partitionen aufgeteilt werden
ORDER BYoptional
Reihenfolge der Zeilen in der Partition, die bestimmt, welche Zeile die erste ist
frameSchlüsselwortoptional
Fensterrahmen: ROWS, RANGE oder GROUPS BETWEEN Anfang AND Ende; standardmäßig mit ORDER BY vom Anfang der Partition bis zur aktuellen Zeile samt Zeilen mit demselben ORDER BY-Wert, ohne ORDER BY die ganze Partition

Rückgabewert

Wert vom Typ von column

Beispiele

Ältestes Mitglied je Status

PostgreSQL 17.5
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

Differenz zum ersten Kauf

PostgreSQL 17.5
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

Details

Der Standardrahmen beginnt immer mit der ersten Zeile der Partition, daher liefert die Funktion ohne expliziten Rahmen den ersten Wert der Partition. Wie du einen anderen Rahmen festlegst, steht bei ROWS BETWEEN.

Siehe auch

Wo du es lernst