Вы делаете рейтинг товаров по выручке внутри категории. Если два товара делят 2 место, следующий товар должен получить 3 место (без пропуска). Какая функция подходит лучше всего?

ADENSE_RANK
BRANK
CROW_NUMBER
DLEAD
Правильный ответ. DENSE_RANK присваивает одинаковое место равным значениям и не делает пропусков в нумерации.

Разбор

DENSE_RANK() дает одинаковый ранг равным значениям, а следующий ранг увеличивает на 1: 1, 2, 2, 3... Это подходит, когда места должны идти без пропусков. В RANK() после равенства появляются пропуски (1, 2, 2, 4...). ROW_NUMBER() вообще не выделяет одинаковые места: у каждой строки свой номер.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Оконные функции»