Dense Rank: Understanding This Key Data Analysis Technique
Dense Rank - это функция аналитического окна в SQL, которая нумерует каждую строку результата запроса в соответствии со значением указанных столбцов. Однако, в отличие от стандартной функции "Rank", она не пропускает числа при одинаковых значениях.
Например, рассмотрим следующую таблицу "employees":
| Id | Name | Salary |
|:----:|:---------:|:-------:|
| 1 | Alice | 100000 |
| 2 | Bob | 80000 |
| 3 | Charlie | 80000 |
| 4 | Dave | 50000 |
Чтобы найти денс-ренк зарплат сотрудников, можно написать следующий запрос:
SELECT name, salary, DENSE_RANK() OVER(ORDER BY salary DESC) as dense_rank FROM employees;
Результат будет следующим:
| Name | Salary | Dense_Rank |
|:--------:|:---------:|:---------:|
| Alice | 100000 | 1 |
| Bob | 80000 | 2 |
| Charlie | 80000 | 2 |
| Dave | 50000 | 3 |
Как можно видеть из таблицы, первое место занимает Alice с зарплатой 100 000, на втором месте располагаются Bob и Charlie с зарплатой 80 000, а Dave занимает третье место с зарплатой 50 000.
Таким образом, используя функцию DENSE_RANK, можно получить более точную и полную информацию о порядке значений внутри указанных столбцов в SQL.