Как DENSE_RANK ранжирует зарплаты внутри отделов

В IT ранги будут 1, 1, 2, в HR — 1, 2. Равная зарплата получает один ранг, а следующий ранг идёт без пропуска.

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

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

В IT ранги будут 1, 1, 2, в HR — 1, 2. Равная зарплата получает один ранг, а следующий ранг идёт без пропуска.

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

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

Условие

Есть сотрудники: IT — Анна 100, Борис 100, Вера 80; HR — Глеб 90, Дина 70. Какие значения даст DENSE_RANK() OVER (PARTITION BY department ORDER BY salary DESC)?

Ответ

В IT ранги будут 1, 1, 2, в HR — 1, 2. Равная зарплата получает один ранг, а следующий ранг идёт без пропуска.

PARTITION BY начинает отдельную последовательность для каждого отдела. Для RANK после двух первых мест следующий ранг в IT был бы 3. Добавление уникального ID в оконный ORDER BY разрушит равенство строк по зарплате и изменит ранжирование. Порядок отображения результата задаётся отдельным внешним ORDER BY.

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

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

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

Подробнее