Поделиться через


Ранжирующая оконная функция dense_rank

Область применения: флажок Databricks SQL флажок Databricks Runtime

Возвращает ранг значения по сравнению со всеми значениями в разделе.

Синтаксис

dense_rank()

Аргументы

Эта функция не имеет аргументов.

Возвраты

Значение INTEGER.

Предложение OVER оконной функции должно содержать предложение ORDER BY. В отличие от оконной функции ранжирования rank, функция dense_rank не оставляет пропусков в последовательности ранжирования. В отличие от оконной функции ранжирования row_number, dense_rank не нарушает взаимосвязей. Если порядок не уникален, дубликаты имеют общую относительную позднюю позицию.

Примеры

> SELECT a,
         b,
         dense_rank() OVER(PARTITION BY a ORDER BY b),
         rank() OVER(PARTITION BY a ORDER BY b),
         row_number() OVER(PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
 A1 1   1   1   1
 A1 1   1   1   2
 A1 2   2   3   3
 A2 3   1   1   1