SQL Academy
Premium
Funktionsreferenz

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;
member_namestatusrow_num
Wednesday Addamsdaughter1
Lela Quinceydaughter2
Annie Quinceydaughter3
Headley Quinceyfather4
Ernest Forrestfather5
Constance Forrestmother6
Flavia Quinceymother7
Andie Quinceyson8

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;
member_namestatusbirthdaynum_in_status
Lela Quinceydaughter1985-06-071
Annie Quinceydaughter1988-04-102
Wednesday Addamsdaughter2005-01-133
Headley Quinceyfather1960-05-131
Ernest Forrestfather1961-09-112
Flavia Quinceymother1963-02-161
Constance Forrestmother1968-09-062
Andie Quinceyson1983-06-051

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.

Siehe auch

Wo du es lernst