Как пронумеровать строки в запросе?

Для последовательной нумерации используйте оконную функцию ROW_NUMBER() OVER (ORDER BY ...). Чтобы результат был устойчивым, порядок должен однозначно различать строки.

Короткий ответ

Что ответить на собеседовании

Для последовательной нумерации используйте оконную функцию ROW_NUMBER() OVER (ORDER BY ...). Чтобы результат был устойчивым, порядок должен однозначно различать строки.

Подробный разбор

Ответ с пояснениями

Для последовательной нумерации используйте оконную функцию ROW_NUMBER() OVER (ORDER BY ...). Чтобы результат был устойчивым, порядок должен однозначно различать строки.

SELECT
  ROW_NUMBER() OVER (ORDER BY created_at, id) AS row_num,
  id,
  created_at
FROM users
ORDER BY created_at, id;

id служит дополнительным критерием при одинаковом времени создания. Для отдельной нумерации внутри групп добавляют PARTITION BY, например по department_id. ROW_NUMBER присваивает разные номера даже строкам с одинаковыми значениями сортировки; RANK и DENSE_RANK нужны для другой семантики ранжирования.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее