FirebirdSQL logo

CUME_DIST()

Доступно в

DSQL

Синтаксис
CUME_DIST() OVER {<window_specification> | window_name}
Тип возвращаемого результата

DOUBLE PRECISION

Функция CUME_DIST рассчитывает кумулятивное распределение значения в наборе данных.Возвращаемое значение находится в диапазоне от 0 до 1.Функция CUME_DIST рассчитывается как (число строк, предшествующих или равных текущей) / (общее число строк). Для равных значений всегда вычисляется одно и то же значение накопительного распределения.Значения NULL по умолчанию включаются и рассматриваются как наименьшие возможные значения.

Example 1. Использование CUME_DIST
SELECT
  id,
  salary,
  CUME_DIST() OVER (ORDER BY salary)
FROM employee
ORDER BY salary;
Результат
id salary    cume_dist
-- ------ ------------
3    8.00          0.2
4    9.00          0.4
1   10.00          0.8
5   10.00          0.8
2   12.00          1.0

NTILE()

Доступно в

DSQL

Синтаксис
NTILE(<expr>) OVER {<window_specification> | window_name}
Table 1. Параметры функции NTILE
Параметр Описание

expr

Выражение целочисленного типа.Указывает количество групп, на которые необходимо разделить каждую секцию.

Тип возвращаемого результата

BIGINT

Функция NTILE распределяет строки упорядоченной секции в заданное количество групп так, чтобы размеры групп были максимально близки.Группы нумеруются, начиная с единицы.Для каждой строки функция NTILE возвращает номер группы, которой принадлежит строка.

Если количество строк в секции не делится на <expr>, то формируются группы двух размеров, отличающихся на единицу.Группы большего размера следуют перед группами меньшего размера в порядке, заданном в предложении OVER.

Example 1. Использование NTILE
SELECT
  id,
  salary,
  NTILE(3) OVER (ORDER BY salary)
FROM employee
ORDER BY salary;
Результат
id salary        ntile
-- ------ ------------
3    8.00            1
4    9.00            1
1   10.00            2
5   10.00            2
2   12.00            3
См. также:

SELECT,PARTITION BY,ORDER BY.