Назад к вопросам
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 — когда нужно учитывать пропуски в позициях из-за дубликатов.