SQLLab

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.

Смотрите также

Закрепите на практике

Решайте реальные SQL-задачи в тренажёре

Открыть тренажёр →