CUME_DIST ФУНКЦИЯ

В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию CUME_DIST с синтаксисом и примерами.

Описание

Функция Oracle/PLSQL CUME_DIST возвращает кумулятивное распределение значений в группе значений. Функция CUME_DIST вернет значение, которое > 0 и <= 1. Функцию CUME_DIST можно использовать двумя способами - в качестве агрегатной функции или в качестве аналитической функции.

Синтаксис № 1 функции CUME_DIST — используется как агрегатная функция

Как агрегатная функция, функция CUME_DIST возвращает относительную позицию строки в группе строк.

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

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

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

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

Примечание

  • Функция CUME_DIST возвращает numeric значение.
  • Количество expression в первом списке выражений, должно быть таким же, как и в операторе ORDER BY.
  • Список выражений, позиции и типы данных в первом списке должны соответствовать c выражениями, как и в операторе ORDER BY.

Применение

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

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

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

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

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

Синтаксис № 2 функции CUME_DIST — используется как аналитическая функция

Как аналитическая функция, функция CUME_DIST возвращает относительную позицию значения в группе значений.

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

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

Функция CUME_DIST возвращает numeric значение.

Применение

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

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

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

Запрос SQL вернет процент заработной платы для каждого сотрудника в department — ‘Marketing’.