Справочник по функциям и операторам SQL
DENSE_RANK
Возвращает плотный ранг строки в пределах окна без пропуска рангов после дубликатов.
Она отличается от функции RANK, которая пропускает ранги при наличии одинаковых значений.
Синтаксис
DENSE_RANK() OVER (PARTITION BY column1, column2, ... ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...)
- PARTITION BY: (необязательно) Разделяет набор строк в группы, для каждой из которых функция DENSE_RANK() будет вычислена независимо
- ORDER BY: Определяет порядок строк внутри каждой группы (если используется PARTITION BY) или всего набора строк, для назначения рангов
Например:
SELECT id, company_id, salary,
DENSE_RANK() OVER (PARTITION BY company_id ORDER BY salary DESC) AS dense_rank
FROM Client;
-- Результат: Столбец dense_rank с плотным рангом зарплат в пределах каждой компании, ранжирование идет по убыванию зарплаты
Пример
Сможете решить задачу с использованием DENSE_RANK?
Решать бесплатно!