ROW_NUMBER
Nummeriert die Zeilen einer Fensterpartition in der Reihenfolge von ORDER BY, beginnend mit 1.
PostgreSQL 17.5
ROW_NUMBER() OVER ([PARTITION BY ...] [ORDER BY ...])Parameter
- PARTITION BYoptional
- Spalten, nach denen die Zeilen in Partitionen aufgeteilt werden; die Nummerierung beginnt in jeder neu
- ORDER BYoptional
- Reihenfolge, in der die Zeilen nummeriert werden
Rückgabewert
Ganze Zahl (bigint) ab 1
Beispiele
Zeilennummern nach Status
PostgreSQL 17.5
SELECT member_name,
status,
ROW_NUMBER() OVER (
ORDER BY status
) AS row_num
FROM FamilyMembers;Nummerierung innerhalb jedes Status
PostgreSQL 17.5
SELECT member_name,
status,
birthday,
ROW_NUMBER() OVER (
PARTITION BY status
ORDER BY birthday
) AS num_in_status
FROM FamilyMembers;Details
Zeilen mit gleichen Werten in ORDER BY bekommen trotzdem verschiedene Nummern in beliebiger Reihenfolge. Ohne ORDER BY ist die Reihenfolge der Nummerierung nicht festgelegt.