SQL Academy
Premium
Funktionsreferenz

NTH_VALUE

Gibt den Wert von column aus der n-ten Zeile des Fensterrahmens zurück.

PostgreSQL 17.5
NTH_VALUE(column, n) OVER ([PARTITION BY ...] [ORDER BY ...] [frame])

Parameter

column
Spalte oder Ausdruck, dessen Wert zurückgegeben wird
ninteger
Nummer der Zeile im Rahmen ab 1
PARTITION BYoptional
Spalten, nach denen die Zeilen in Partitionen aufgeteilt werden
ORDER BYoptional
Reihenfolge der Zeilen in der Partition
frameSchlüsselwortoptional
Fensterrahmen, mit ORDER BY standardmäßig vom Anfang der Partition bis zur aktuellen Zeile

Rückgabewert

Wert vom Typ von column; NULL, wenn der Rahmen weniger als n Zeilen hat

Beispiele

Zweitältestes Mitglied mit dem Standardrahmen

PostgreSQL 17.5
SELECT member_name,
	birthday,
	NTH_VALUE(member_name, 2) OVER (
		ORDER BY birthday
	) AS second_oldest
FROM FamilyMembers;
member_namebirthdaysecond_oldest
Headley Quincey1960-05-13<NULL>
Ernest Forrest1961-09-11Ernest Forrest
Flavia Quincey1963-02-16Ernest Forrest
Constance Forrest1968-09-06Ernest Forrest
Andie Quincey1983-06-05Ernest Forrest
Lela Quincey1985-06-07Ernest Forrest
Annie Quincey1988-04-10Ernest Forrest
Wednesday Addams2005-01-13Ernest Forrest

Zweitältestes Mitglied in der ganzen Partition

PostgreSQL 17.5
SELECT member_name,
	birthday,
	NTH_VALUE(member_name, 2) OVER (
		ORDER BY birthday ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
	) AS second_oldest
FROM FamilyMembers;
member_namebirthdaysecond_oldest
Headley Quincey1960-05-13Ernest Forrest
Ernest Forrest1961-09-11Ernest Forrest
Flavia Quincey1963-02-16Ernest Forrest
Constance Forrest1968-09-06Ernest Forrest
Andie Quincey1983-06-05Ernest Forrest
Lela Quincey1985-06-07Ernest Forrest
Annie Quincey1988-04-10Ernest Forrest
Wednesday Addams2005-01-13Ernest Forrest

Details

Mit dem Standardrahmen bekommen die ersten n − 1 Zeilen einer Partition NULL: Die n-te Zeile liegt noch nicht in ihrem Rahmen. Damit alle Zeilen denselben Wert bekommen, setzt du den Rahmen auf die ganze Partition: ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.

Siehe auch