SQL Academy
Premium
Funktionsreferenz

LAST_VALUE

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

PostgreSQL 17.5
LAST_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 letzte 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; die ganze Partition ausdrücklich ist ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING

Rückgabewert

Wert vom Typ von column

Beispiele

Jüngstes Mitglied je Status

PostgreSQL 17.5
SELECT member_name,
	status,
	birthday,
	LAST_VALUE(member_name) OVER (
		PARTITION BY status
		ORDER BY birthday ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
	) AS youngest_in_status
FROM FamilyMembers;
member_namestatusbirthdayyoungest_in_status
Lela Quinceydaughter1985-06-07Wednesday Addams
Annie Quinceydaughter1988-04-10Wednesday Addams
Wednesday Addamsdaughter2005-01-13Wednesday Addams
Headley Quinceyfather1960-05-13Ernest Forrest
Ernest Forrestfather1961-09-11Ernest Forrest
Flavia Quinceymother1963-02-16Constance Forrest
Constance Forrestmother1968-09-06Constance Forrest
Andie Quinceyson1983-06-05Andie Quincey

Standardrahmen endet bei der aktuellen Zeile

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

Details

Mit ORDER BY endet der Standardrahmen mit der aktuellen Zeile (und Zeilen mit demselben Wert in ORDER BY), nicht am Ende der Partition. Deshalb gibt die Funktion ohne expliziten Rahmen oft den Wert der aktuellen Zeile zurück. Wie du einen Rahmen festlegst, steht bei ROWS BETWEEN.

Siehe auch

Wo du es lernst