Чем отличается RANK от DENSE_RANK?

Функции RANK() и DENSERANK() используются для присвоения рангов строкам в отсортированном наборе данных, но они отличаются тем, как обрабатывают одинаковые значения (т.е. как учитывают пропуски в рангах).

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

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

Функции RANK() и DENSERANK() используются для присвоения рангов строкам в отсортированном наборе данных, но они отличаются тем, как обрабатывают одинаковые значения (т.е. как учитывают пропуски в рангах).

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

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

Функции RANK() и DENSE_RANK() используются для присвоения рангов строкам в отсортированном наборе данных, но они отличаются тем, как обрабатывают одинаковые значения (т.е. как учитывают пропуски в рангах).

  • RANK() присваивает одинаковый ранг одинаковым значениям, но при этом пропускает следующие ранги. Например, если два элемента занимают 1-е место, следующий получит ранг 3.
  • DENSE_RANK() также присваивает одинаковый ранг одинаковым значениям, но не пропускает ранги. В том же примере следующий после двух первых с рангом 1 получит ранг 2.

Пример:

Значение RANK() DENSE_RANK()
100 1 1
100 1 1
90 3 2
80 4 3

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

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

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

Подробнее