FIRST_VALUE
Gibt den Wert von column aus der ersten Zeile des Fensterrahmens zurück.
PostgreSQL 17.5
FIRST_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 erste 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
Rückgabewert
Wert vom Typ von column
Beispiele
Ältestes Mitglied je Status
PostgreSQL 17.5
SELECT member_name,
status,
birthday,
FIRST_VALUE(member_name) OVER (
PARTITION BY status
ORDER BY birthday
) AS oldest_in_status
FROM FamilyMembers;Differenz zum ersten Kauf
PostgreSQL 17.5
SELECT family_member,
date,
unit_price,
unit_price - FIRST_VALUE(unit_price) OVER (
PARTITION BY family_member
ORDER BY date
) AS diff_from_first
FROM Payments
ORDER BY family_member,
date;Details
Der Standardrahmen beginnt immer mit der ersten Zeile der Partition, daher liefert die Funktion ohne expliziten Rahmen den ersten Wert der Partition. Wie du einen anderen Rahmen festlegst, steht bei ROWS BETWEEN.