DENSE_RANK ФУНКЦИЯ

Узнайте, как использовать Oracle / PLSQL функцию DENSE_RANK с синтаксисом и примерами.

Описание

Функция Oracle / PLSQL DENSE_RANK возвращает ранг строки в упорядоченной группе строк. Она очень похожа на функцию RANK. Однако функция RANK может вызвать непоследовательное ранжирование если тестируемые значения одинаковы. Поэтому, функция DENSE_RANK всегда будет приводить к последовательному ранжированию строк.

Синтаксис

Синтаксис функции Oracle / PLSQL DENSE_RANK:

DENSE_RANK( expression1, … expression_n ) WITHIN GROUP ( ORDER BY expression1, … expression_n )

Параметры или аргументы

expression1 .. expression_n может быть одно или несколько выражений, которые идентифицируют уникальную строку в группе..

Примечание

Количество expression в первом списке выражений, должно быть таким же, как и в условии ORDER BY.

Список выражений позиции и типы данных в первом списке должны быть совместимы c выражениями, как и в условии ORDER BY.

Применение

Функцию DENSE_RANK можно использовать в следующих версиях Oracle / PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i

Рассмотрим несколько примеров функции DENSE_RANK и изучим, как использовать функцию DENSE_RANK в Oracle / PLSQL.

Пример (как агрегирующая функция)

Запрос SQL вернет ранг строки сотрудника с окладом в $ 1000 и бонус в размере $ 500 из таблицы employees.

DENSE_RANK КАК АНАЛИТИЧЕСКАЯ ФУНКЦИЯ

Как аналитическая функция, функция DENSE_RANK возвращает ранг каждой строки запроса с соответствием для других строк.

Синтаксис функции DENSE_RANK при использовании в качестве аналитической функции:

DENSE_RANK() OVER ( [ query_partition_clause] ORDER BY clause )

функцию DENSE_RANK можно использовать в следующих версиях Oracle / PLSQL:

  • Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример (как аналитическая функция)

Запрос SQL вернет всех сотрудников, работающих в отделе маркетинга, а затем рассчитать ранг для каждого уникальную зарплату в отделе маркетинга. Если у двух сотрудников была одинаковая зарплату, функция DENSE_RANK вернется тот же ранг, для обоих сотрудников.

Смотри также в категории: Числовые / математические функции Oracle / PLSQL