NTH_VALUE
Gibt den Wert von column aus der n-ten Zeile des Fensterrahmens zurück.
PostgreSQL 17.9
NTH_VALUE(column, n)- column
- Spalte oder Ausdruck, dessen Wert zurückgegeben wird
- n
- Nummer der Zeile im Rahmen ab 1integer
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.9
SELECT member_name,
birthday,
NTH_VALUE(member_name, 2) OVER (
ORDER BY birthday
) AS second_oldest
FROM FamilyMembers;Zweitältestes Mitglied in der ganzen Partition
PostgreSQL 17.9
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;Details
Der Standardrahmen reicht vom Anfang der Partition bis zur aktuellen Zeile und den Zeilen mit demselben Wert in ORDER BY, ohne ORDER BY ist es die ganze Partition. Deshalb bekommen mit dem Standardrahmen 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.