Правильный ответ:
Если несколько заказов одного клиента имеют одинаковую сумму, как изменится поведение DENSE_RANK() по сравнению с RANK()?
Правильный ответ:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Если несколько заказов одного клиента имеют одинаковую сумму, как изменится поведение DENSE_RANK() по сравнению с RANK()?
- DENSE_RANK() пропускает следующий номер, RANK() нет
- DENSE_RANK() присваивает одинаковый ранг одинаковым суммам и не пропускает следующий номер, RANK() пропускает
- Разницы нет
- DENSE_RANK() выдаёт уникальные номера, RANK() одинаковые
Ответ
Правильный ответ:
- DENSE_RANK() присваивает одинаковый ранг одинаковым суммам и не пропускает следующий номер, RANK() пропускает
Объяснение:
RANK()присваивает одинаковый ранг одинаковым значениям, но при этом пропускает номера для следующего ранга. Например, если два заказа имеют сумму 100 и занимают ранг 1, следующий ранг будет 3.DENSE_RANK()также присваивает одинаковый ранг одинаковым значениям, но не пропускает номера. В том же примере следующий ранг будет 2.
Таким образом, при нескольких заказах с одинаковой суммой DENSE_RANK() выдаст последовательные ранги без пропусков, а RANK() — с пропусками.