ROW_NUMBER()
Standard SQLПрисваивает уникальный порядковый номер каждой строке в пределах секции.
Синтаксис
ROW_NUMBER() OVER ([PARTITION BY column] ORDER BY column)
Примеры
Нумерация заказов
SELECT id, user_id, amount, ROW_NUMBER() OVER (ORDER BY amount DESC) AS rn FROM orders;
Первый заказ каждого пользователя
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY created_at) AS rn FROM orders ) t WHERE rn = 1;
Важно знать
- ⚠Всегда уникален — нет дублей. Для рейтинга с дублями используйте RANK или DENSE_RANK.