SA Шпаргалка

Все ответы в 2 клика

Продвинутый

В чем разница между функциями ROW_NUMBER(), RANK() и DENSE_RANK()?

Все три — это оконные функции для нумерации строк, но они по-разному обрабатывают одинаковые значения (ничьи):

Допустим, у нас есть баллы: 100, 100, 90, 80.

  • ROW_NUMBER(): Дает уникальный номер каждой строке подряд, игнорируя ничьи. Результат: 1, 2, 3, 4.

  • RANK(): Дает одинаковый ранг при ничьей, но пропускает следующие номера. Результат: 1, 1, 3, 4.

  • DENSE_RANK(): Дает одинаковый ранг при ничьей и НЕ пропускает номера (плотный ранг). Результат: 1, 1, 2, 3.

Сложная тема? Разберём на мок-интервьюЗаписаться на менторство →

Другие вопросы темы «Оконные функции Pro»

Ещё вопросы раздела «SQL и БД»

Все вопросы раздела «SQL и БД»