Загрузка...
Справочник по функциям и операторам 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?

Решать бесплатно!