Примечание |
---|
Реализована возможность работы только с первым уровнем группировки. |
Оконные функции представлены в таблице ниже (Таблица «Оконные функции»).
Таблица 10. Оконные функции
№ | Функция | Синтаксис | Пример | ||
---|---|---|---|---|---|
1 | AVG |
AVG( value TOTAL | WITHIN. | AMONG. ) Возвращает среднее арифметическое значение выражения. Работает только с числовыми типами данных |
AVG(SUM([orders]) TOTAL)
AVG(SUM([orders]) WITHIN [city])
|
||
2 | AVG_IF |
AVG_IF( expression, condition TOTAL | WITHIN. | AMONG . ) Возвращает среднее для всех значений, которые удовлетворяют условию condition. Если значения отсутствуют, то возвращается NULL. Работает только с числовыми типами данных |
AVG_IF(SUM([orders]), SUM([orders]) > 5 WITHIN [city])
|
||
3 | COUNT |
COUNT( [ value ] TOTAL | WITHIN. | AMONG . ) Возвращает количество элементов в заданном окне |
COUNT(SUM([orders]) TOTAL)
|
||
4 | COUNT_IF |
COUNT_IF( expression, condition TOTAL | WITHIN. | AMONG . ) Возвращает количество элементов в заданном окне, которые удовлетворяют условию expression |
COUNT_IF(SUM([orders]), SUM([orders]) > 28 WITHIN [city])
|
||
5 | FIRST |
FIRST( value ) Возвращает значение value из первой строки заданного окна. См. также LAST (https://cloud.yandex.ru/docs/datalens/function-ref/LAST) |
FIRST(SUM([orders]) TOTAL)
|
||
6 | LAG |
LAG( value [ , offset [ , default ] ] ) Возвращает значение value из строки со смещением offset относительно текущей в рамках заданного окна:
По умолчанию offset равно 1. Если значение отсутствует (offset ссылается на строку до первой или после последней), то возвращается значение default в качестве результата. Если default не задано, то используется NULL |
LAG ( SUM ([orders]) TOTAL
LAG ( SUM ([orders]), - 2 TOTAL)
LAG ( sum ([orders]), 1 total order by sum ([orders])) Примечание – В виджете настроена сортировка по агрегату по полю «Заказ»
lag ( sum ([zakaz]), 1 total order by any ([mesac__cislo]))
|
||
7 | LAST |
LAST( value ) Возвращает значение value из последней строки заданного окна. См. также FIRST (https://cloud.yandex.ru/docs/datalens/function-ref/FIRST) |
LAST(SUM([orders])TOTAL)
|
||
8 | MAVG |
MAVG( value, rows_1 [, rows_2 ] ) Возвращает скользящее среднее значение по окну записей. Значение определяется порядком сортировки и аргументами: |
MAVG(SUM([orders]), 1 TOTAL)
MAVG(SUM([orders]), -2 TOTAL)
MAVG(SUM([orders]), 1, 1 TOTAL)
|
||
rows_1 |
rowa_2 |
Окно | |||
Положительное | - | Текущая запись и rows_1 предшествующих | |||
Отрицательное | - | Текущая запись и -rows_1 последующих | |||
Любой знак | Любой знак | rows_1 предшествующих записей, текущая и rows_2 последующих | |||
9 | MAX |
MAX( value TOTAL | WITHIN. | AMONG . ) Возвращает максимальное значение. Если value:
|
MAX(SUM([orders]) TOTAL)
|
||
10 | MAX_IF |
MAX_IF( expression, condition TOTAL | WITHIN. | AMONG . ) Возвращает максимальное из всех значений выражения, которые удовлетворяют условию condition |
MAX_IF(SUM([orders]), AVG([orders]) <8 TOTAL [city])
|
||
11 | MCOUNT |
MCOUNT( value, rows_1 [, rows_2 ] ) Возвращает количество значений (не равных NULL) по окну записей, которое определяется порядком сортировки и аргументами: |
MCOUNT(SUM([orders]), 1 TOTAL)
MCOUNT(SUM([orders]), -2 TOTAL)
MCOUNT(SUM([orders]), 1, 1 TOTAL)
|
||
rows_1 | rowa_2 | Окно | |||
Положительное | - | Текущая запись и rows_1 предшествующих | |||
Отрицательное | - | Текущая запись и -rows_1 последующих | |||
Любой знак | Любой знак | rows_1 предшествующих записей, текущая и rows_2 последующих | |||
12 | MIN |
MIN( value TOTAL | WITHIN. | AMONG . ) Возвращает минимальное значение. Если value:
|
MIN(SUM([orders]) TOTAL)
|
||
13 | MIN_IF |
MIN_IF( expression, condition TOTAL | WITHIN. | AMONG . ) Возвращает минимальное из всех значений выражения, которые удовлетворяют условию condition |
MIN_IF(SUM([orders]), AVG([orders]) <8 TOTAL [city])
|
||
14 | MMAX |
MMAX( value, rows_1 [, rows_2 ] ) Возвращает скользящий максимум значений по окну записей. Значение определяется порядком сортировки и аргументами: |
MMAX(SUM([orders]), 1 TOTAL)
MMAX(SUM([orders]), 1, 1 TOTAL)
|
||
rows_1 | rowa_2 | Окно | |||
Положительное | - | Текущая запись и rows_1 предшествующих | |||
Отрицательное | - | Текущая запись и -rows_1 последующих | |||
Любой знак | Любой знак | rows_1 предшествующих записей, текущая и rows_2 последующих | |||
15 | MMIN |
MMIN( value, rows_1 [, rows_2 ] ) Возвращает скользящий минимум значений по окну записей, определяемому порядком сортировки и аргументами: |
MMIN(SUM([orders]), 1 TOTAL)
MMIN(SUM([orders]), 1, 1 TOTAL)
|
||
rows_1 | rowa_2 | Окно | |||
Положительное | - | Текущая запись и rows_1 предшествующих | |||
Отрицательное | - | Текущая запись и -rows_1 последующих | |||
Любой знак | Любой знак | rows_1 предшествующих записей, текущая и rows_2 последующих | |||
16 | MSUM |
MSUM( value, rows_1 [, rows_2 ] ) Возвращает скользящую сумму значений по окну записей, которое определяется порядком сортировки и аргументами: |
MSUM(SUM([orders]), 1 TOTAL)
MSUM(SUM([orders]), 1, 1 TOTAL)
|
||
rows_1 | rowa_2 | Окно | |||
Положительное | - | Текущая запись и rows_1 предшествующих | |||
Отрицательное | - | Текущая запись и -rows_1 последующих | |||
Любой знак | Любой знак | rows_1 предшествующих записей, текущая и rows_2 последующих | |||
17 | RANK |
RANK( value [, direction ] ) Выполняет ранжирование значений с пропусками: возвращает порядковый номер строки при сортировке по value. Строки, которые соответствуют одному и тому же значению value, имеют одно и то же значение ранга. Если первые две строки получают ранг 1, то ранг следующей строки (если значение value не совпадает) будет равен 3. Значение 2 в этом случае пропускается. Если direction равно "desc" или не указано, то ранжирование происходит от большего к меньшему, если "asc", то от меньшего к большему. По умолчанию используется "desc" |
RANK(SUM([orders]), DESC TOTAL)
RANK(count([orders]), DESC TOTAL)
|
||
18 | RANK_DENSE |
RANK_DENSE( value [, direction ] ) Выполняет ранжирование значений без пропусков: возвращает порядковый номер строки при сортировке по value. Строки, которые соответствуют одному и тому же значению value, имеют одно и то же значение ранга. Если первые две строки получают ранг 1, то ранг следующей строки (если значение value не совпадает) будет равен 2. Значения ранга не пропускаются. Если direction равно "desc" или не указано, то ранжирование происходит от большего к меньшему, если "asc", то от меньшего к большему. По умолчанию используется "desc" |
RANK_DENSE(count([orders]), DESC TOTAL)
|
||
19 | RAVG |
RAVG( value [, direction ] ) Возвращает среднее арифметическое значений в рамках окна записей, определяемого аргументом direction: |
RAVG(SUM([orders]), ASC TOTAL ORDER BY [city] DESC)
|
||
direction | Окно | ||||
"asc" | От первой записи до текущей | ||||
"desc" | От текущей записи до последней | ||||
По умолчанию используется значение "asc" | |||||
20 | RCOUNT |
RCOUNT( value [, direction ] ) Возвращает количество значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction: |
RCOUNT(SUM([orders]) TOTAL ORDER BY [city] DESC)
RCOUNT(SUM([orders]) TOTAL)
|
||
direction | Окно | ||||
"asc" | От первой записи до текущей | ||||
"desc" | От текущей записи до последней | ||||
По умолчанию используется значение "asc" | |||||
21 | RMAX |
RMAX( value [, direction ] ) Возвращает максимальное из значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction: |
RMAX(SUM([orders]) TOTAL ORDER BY [city] desc)
|
||
direction | Окно | ||||
"asc" | От первой записи до текущей | ||||
"desc" | От текущей записи до последней | ||||
По умолчанию используется значение "asc" | |||||
22 | RMIN |
MMIN( value, rows_1 [, rows_2 ] ) Возвращает скользящий минимум значений по окну записей, определяемому порядком сортировки и аргументами: |
RMIN(SUM([orders]) TOTAL ORDER BY [city] DESC)
|
||
direction | Окно | ||||
"asc" | От первой записи до текущей | ||||
"desc" | От текущей записи до последней | ||||
По умолчанию используется значение "asc" | |||||
23 | RSUM |
RSUM( value [, direction ] ) Возвращает сумму значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction: |
RSUM(SUM([orders]), ASC TOTAL ORDER BY [city] DESC)
|
||
direction | Окно | ||||
"asc" | От первой записи до текущей | ||||
"desc" | От текущей записи до последней | ||||
По умолчанию используется значение "asc" | |||||
24 | SUM |
SUM( value TOTAL | WITHIN. | AMONG . ) Возвращает сумму всех значений выражения. Работает только с числовыми типами данных. Типы аргументов:
|
SUM(SUM([orders]) TOTAL)
|
||
25 | SUM_IF |
SUM_IF( expression, condition TOTAL | WITHIN. | AMONG . ) Возвращает сумму всех значений выражения, которые удовлетворяют условию condition. Работает только с числовыми типами данных. Типы аргументов:
|
SUM_IF(SUM([orders]), AVG([orders]) <8 TOTAL [city])
|