FirebirdSQL logo

LEAD()

Доступно в

DSQL

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

expr

Выражение.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются.

offset

Количество строк после текущей строки до строки, из которой необходимо получить значение.Если значение аргумента не указано, то по умолчанию принимается 1.offset может быть столбцом, вложенным запросом или другим выражением, с помощью которого вычисляется целаяположительная величина, или другим типом, который может быть неявно преобразован в BIGINT.offset не может быть отрицательным значением или аналитической функцией.

default

Значение по умолчанию, которое возвращается, в случае если смещение (offset) указывает за пределы секции.По умолчанию равно NULL.

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

тот же что и аргумент функции expr

Функция LEAD обеспечивает доступ к строке на заданном физическом смещении (offset) после текущей строки.

Если смещение (offset) указывает за пределы секции, то будет возвращено значение default, которое по умолчанию равно NULL.

NTH_VALUE()

Доступно в

DSQL

Синтаксис
NTH_VALUE(<expr> [, <offset>]) [FROM FIRST | FROM LAST]
  OVER {<window_specification> | window_name}
Table 1. Параметры функции NTH_VALUE
Параметр Описание

expr

Выражение.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются.

offset

Номер записи, начиная с первой (опция FROM FIRST) или последней (опция FROM LAST) записи.

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

тот же что и аргумент функции expr

Функция NTH_VALUE возвращает N-ое значение, начиная с первой (опция FROM FIRST) или последней (опция FROM LAST) записи.По умолчанию используется опция FROM FIRST.Смещение 1 от первой записи будет эквивалентно функции FIRST_VALUE, смещение 1 от последней записи будет эквивалентно функции LAST_VALUE.

Агрегатные функции внутри оконных

В качестве аргументов оконных функций, а также в предложении OVER разрешено использование агрегатных функций (но не оконных). В этом случае сначала вычисляются агрегатные функции, а только затем на них накладываются окна оконных функций.

Note

При использовании агрегатных функции в качестве аргументов оконных функций, все столбцы, не используемые в агрегатных функциях должны быть указаны в предложении GROUP BY.

Example 1. Использование агрегатной функции в качестве аргумента оконной
SELECT
    code_employee_group,
    AVG(salary) AS avg_salary,
    RANK() OVER(ORDER BY AVG(salary)) AS salary_rank
FROM employee
GROUP BY code_employee_group