LAST_VALUE
Gibt den Wert von column aus der letzten Zeile des Fensterrahmens zurück.
LAST_VALUE(column)- column
- Spalte oder Ausdruck, dessen Wert zurückgegeben wird
Rückgabewert
Wert vom Typ von column
Beispiele
Jüngstes Mitglied je Status
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;Standardrahmen endet bei der aktuellen Zeile
SELECT member_name,
status,
birthday,
LAST_VALUE(member_name) OVER (
PARTITION BY status
ORDER BY birthday
) AS last_in_frame
FROM FamilyMembers;Details
Der Standardrahmen endet bei der aktuellen Zeile (und den Zeilen mit demselben Wert in ORDER BY), nicht am Ende der Partition, daher gibt die Funktion ohne eigenen Rahmen oft den Wert der aktuellen Zeile zurück. Für den letzten Wert der Partition setzt du den Rahmen auf ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.
Der Rahmen legt fest, welche Zeilen der Partition die Funktion sieht, und wird nach ORDER BY geschrieben: ROWS BETWEEN frame_start AND frame_end zählt Zeilen, während RANGE BETWEEN frame_start AND frame_end die Werte aus ORDER BY verwendet.
Ohne Rahmen gilt die Standardregel. Hat OVER ein ORDER BY, reicht der Rahmen vom Anfang der Partition bis zur aktuellen Zeile, einschließlich der Zeilen mit demselben Wert in ORDER BY. Ohne ORDER BY ist der Rahmen die ganze Partition.