ROW_NUMBER
Numbers the rows of a window partition in ORDER BY order, starting from 1.
PostgreSQL 17.9
ROW_NUMBER()Return value
An integer (bigint) from 1
Examples
Row numbers by status
PostgreSQL 17.9
SELECT member_name,
status,
ROW_NUMBER() OVER (
ORDER BY status
) AS row_num
FROM FamilyMembers;Numbering within each status
PostgreSQL 17.9
SELECT member_name,
status,
birthday,
ROW_NUMBER() OVER (
PARTITION BY status
ORDER BY birthday
) AS num_in_status
FROM FamilyMembers;Details
Rows with equal ORDER BY values still get different numbers in an arbitrary order. Without ORDER BY the numbering order is undefined.