Sobes.tech
Назад к вопросам
Intern
6

Какие оконные функции использовал чаще всего? Чем RANK отличается от DENSE_RANK?

Компании, где спрашивали
Яндекс

Ответ от нейросети

sobes.tech AI

Чаще всего в аналитике используются оконные функции для ранжирования, агрегации и вычисления скользящих метрик.

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

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

Пример:

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

Таким образом, DENSE_RANK удобен, когда важна непрерывность рангов, а RANK — когда нужно учитывать пропуски в позициях из-за дубликатов.