SQL Academy
Premium
Funktionsreferenz

LEAD

Gibt den Wert aus der Zeile zurück, die offset Zeilen nach der aktuellen in der Fensterpartition liegt.

PostgreSQL 17.5
LEAD(column[, offset[, default]]) OVER ([PARTITION BY ...] [ORDER BY ...])

Parameter

column
Spalte oder Ausdruck, dessen Wert aus der nächsten Zeile genommen wird
offsetintegeroptional
Wie viele Zeilen nach vorn, standardmäßig 1; ein negativer Wert schaut zurück, wie LAG
defaultoptional
Wert vom Typ von column, wenn es keine Zeile mit diesem Versatz gibt, standardmäßig NULL
PARTITION BYoptional
Spalten, nach denen die Zeilen in Partitionen aufgeteilt werden; der Versatz geht nicht über die Partition hinaus
ORDER BYoptional
Reihenfolge der Zeilen, die bestimmt, welche Zeile die nächste ist

Rückgabewert

Wert vom Typ von column; default oder NULL, wenn es keine Zeile mit diesem Versatz gibt, zum Beispiel bei der letzten Zeile einer Partition

Beispiele

Eine und zwei Zeilen vorwärts

PostgreSQL 17.5
SELECT member_name,
	birthday,
	LEAD(member_name) OVER (
		ORDER BY birthday
	) AS next_member,
	LEAD(member_name, 2, 'none') OVER (
		ORDER BY birthday
	) AS two_rows_ahead
FROM FamilyMembers;
member_namebirthdaynext_membertwo_rows_ahead
Headley Quincey1960-05-13Ernest ForrestFlavia Quincey
Ernest Forrest1961-09-11Flavia QuinceyConstance Forrest
Flavia Quincey1963-02-16Constance ForrestAndie Quincey
Constance Forrest1968-09-06Andie QuinceyLela Quincey
Andie Quincey1983-06-05Lela QuinceyAnnie Quincey
Lela Quincey1985-06-07Annie QuinceyWednesday Addams
Annie Quincey1988-04-10Wednesday Addamsnone
Wednesday Addams2005-01-13<NULL>none

Zeit bis zum nächsten Kauf

PostgreSQL 17.5
SELECT family_member,
	date,
	LEAD(date) OVER (
		PARTITION BY family_member
		ORDER BY date
	) AS next_date,
	LEAD(date) OVER (
		PARTITION BY family_member
		ORDER BY date
	) - date AS until_next
FROM Payments
ORDER BY family_member,
	date;
family_memberdatenext_dateuntil_next
12005-02-032005-02-129 days
12005-02-122005-03-1127 days
12005-03-112005-04-2040 days
12005-04-202005-05-1323 days
12005-05-132005-06-0523 days
12005-06-052006-01-15224 days
12006-01-152006-03-1256 days
12006-03-12<NULL><NULL>
22005-03-182005-03-235 days
22005-03-232005-06-1180 days

Details

Die Differenz zur nächsten Zeile ist LEAD(column) OVER (...) - column: Für die letzte Zeile einer Partition ist sie NULL. default muss denselben Typ wie column haben.

Siehe auch

Wo du es lernst