FirebirdSQL logo

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.

ROW_NUMBER()

Доступно в

DSQL

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

BIGINT

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

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