Оформление
Справочник функций
В языке формул платформы 133 функции в 10 категориях. Эта страница — полный список: ищите по ней сочетанием Ctrl+F. Подробный разбор с примерами — на странице своей категории.
Из 133 функций на витрине платформы без оговорок работают 110; у остальных 23 в колонке «Особенности» сказано, что именно мешает — ограничения языка формул.
В режиме прямого запроса формула переводится в диалект вашей базы, и часть функций до неё не доезжает — поддержка функций источниками.
Как читать синтаксис
Имена аргументов в справочнике одинаковы у всех функций и означают, что можно подставить:
| В синтаксисе | Что подставляют |
|---|---|
number | Числовое поле или выражение: [orders.amount], SUM([orders.amount]), 12 |
value | Значение любого типа — функция не требует именно числа |
string | Текстовое поле или строка в кавычках: [products.category], 'Компьютеры' |
date, datetime | Поле даты, литерал #2026-01-01# или TODAY() |
condition | Логическое выражение: [orders.amount] > 1000 |
unit | Единица времени строкой: 'day', 'week', 'month', 'quarter', 'year' |
n, rows, offset | Целое число: сдвиг, размер окна, количество |
direction | Порядок строкой: 'asc' или 'desc' |
pattern, substr, prefix, suffix | Строка для поиска или сравнения |
default | Значение, которое подставится вместо пустого |
measure | Уже посчитанная агрегация: SUM([orders.amount]) |
Квадратные скобки вокруг имени поля — ссылка на поле, как в формуле: [ date ], [ dim ]. Квадратные скобки с запятой внутри — необязательный аргумент. Запись ROUND( number [, precision ] ) читается так: точность можно не указывать, тогда округление идёт до целого. Вложенные скобки — несколько необязательных подряд: DATEADD( date [, unit [, n ] ] ).
Многоточие — аргументов может быть сколько угодно: CONCAT( a, b, … ).
Где писать формулу
Функции доступны в вычисляемых полях датасета и в вычисляемых полях виджета — вычисляемые поля. В фильтрах и сортировке доступны не все: смотрите колонку «Особенности».
Агрегатные функции
Разбор с примерами — агрегатные функции.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
ALL_CONCAT | ALL_CONCAT( string [, sep ] ) | Склеивает все значения в строку через разделитель. | источник не исполняет |
ANY | ANY( value ) | Одно из значений набора — возвращается наименьшее. | |
ARG_MAX | ARG_MAX( value, number ) | Значение, соответствующее максимуму второго аргумента. Доступно на ClickHouse и… | |
ARG_MIN | ARG_MIN( value, number ) | Значение, соответствующее минимуму второго аргумента. Доступно на ClickHouse и… | |
AVG | AVG( number ) | Среднее арифметическое всех значений. | |
AVG_IF | AVG_IF( number, condition ) | Среднее значений, удовлетворяющих условию. | |
COUNT | COUNT( [ value ] ) | Количество значений (строк). | |
COUNTD | COUNTD( value ) | Количество уникальных значений. | |
COUNTD_APPROX | COUNTD_APPROX( value ) | Приближённое количество уникальных значений (быстрее). | помечена как неисполняемая, но работает |
COUNTD_IF | COUNTD_IF( value, condition ) | Количество уникальных значений по условию. | |
COUNT_IF | COUNT_IF( condition ) | Количество значений, для которых условие истинно. | |
MAX | MAX( value ) | Максимальное значение. | |
MAX_IF | MAX_IF( value, condition ) | Максимум среди значений по условию. | |
MEDIAN | MEDIAN( number ) | Медиана значений. | источник не исполняет |
MIN | MIN( value ) | Минимальное значение. | |
MIN_IF | MIN_IF( value, condition ) | Минимум среди значений по условию. | |
QUANTILE | QUANTILE( number, quant ) | Точный квантиль уровня quant (0..1). | источник не исполняет |
QUANTILE_APPROX | QUANTILE_APPROX( number, quant ) | Приближённый квантиль уровня quant. | источник не исполняет |
STDEV | STDEV( number ) | Стандартное отклонение по выборке. | помечена как неисполняемая, но работает |
STDEVP | STDEVP( number ) | Стандартное отклонение по генеральной совокупности. | помечена как неисполняемая, но работает |
SUM | SUM( number ) | Сумма всех значений выражения. | |
SUM_IF | SUM_IF( number, condition ) | Сумма значений, для которых условие истинно. | |
TOP_CONCAT | TOP_CONCAT( string, n [, sep ] ) | Склеивает первые n значений в строку. | источник не исполняет |
VAR | VAR( number ) | Дисперсия по выборке. | помечена как неисполняемая, но работает |
VARP | VARP( number ) | Дисперсия по генеральной совокупности. | помечена как неисполняемая, но работает |
Уровень детализации (LOD)
Разбор с примерами — уровень детализации (lod).
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
EXCLUDE | SUM( [ value ] EXCLUDE [ dim ], … ) | Из измерений виджета убираются перечисленные — так считают долю от целого. | |
FIXED | SUM( [ value ] FIXED [ dim ], … ) | Агрегат считается со строго заданной группировкой, независимо от измерений виджета. | |
INCLUDE | SUM( [ value ] INCLUDE [ dim ], … ) | К измерениям виджета добавляются перечисленные — агрегат считается детальнее. |
Оконные функции
Разбор с примерами — оконные функции.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
FIRST | FIRST( value ) | Первое значение в окне. | |
LAG | LAG( value [, offset ] ) | Значение со смещением назад в окне. | |
LAST | LAST( value ) | Последнее значение в окне. | |
LEAD | LEAD( value [, offset ] ) | Значение со смещением вперёд в окне. | |
MAVG | MAVG( number, rows ) | Скользящее среднее по окну строк. | |
MCOUNT | MCOUNT( value, rows ) | Скользящее количество по окну строк. | |
MMAX | MMAX( value, rows ) | Скользящий максимум по окну строк. | |
MMIN | MMIN( value, rows ) | Скользящий минимум по окну строк. | |
MSUM | MSUM( number, rows ) | Скользящая сумма по окну строк. | |
RANK | RANK( value [, direction ] ) | Ранг значения; одинаковым значениям — общий ранг, следующий идёт с пропуском. | |
RANK_DENSE | RANK_DENSE( value [, direction ] ) | Плотный ранг значения — без пропусков после совпадений. | |
RANK_PERCENTILE | RANK_PERCENTILE( value [, direction ] ) | Ранг значения в долях от единицы. | |
RANK_UNIQUE | RANK_UNIQUE( value [, direction ] ) | Ранг с обязательным различением совпавших значений. | |
RAVG | RAVG( number ) | Нарастающее среднее. | |
RCOUNT | RCOUNT( value ) | Нарастающее количество. | |
RMAX | RMAX( value ) | Нарастающий максимум. | |
RMIN | RMIN( value ) | Нарастающий минимум. | |
ROW_NUMBER | ROW_NUMBER() | Номер строки в окне. | |
RSUM | RSUM( number ) | Нарастающая сумма. |
Область окна
Разбор с примерами — область окна.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
AMONG | SUM( SUM( [ value ] ) AMONG [ dim ], … ) | Окно — измерения виджета, кроме перечисленных. | |
TOTAL | SUM( SUM( [ value ] ) TOTAL ) | Окно — вся выборка целиком; так считают общий итог для доли. | |
WITHIN | SUM( SUM( [ value ] ) WITHIN [ dim ], … ) | Окно — группы по перечисленным измерениям. |
Функции времени
Разбор с примерами — функции времени.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
AGO | AGO( measure, [ date ] [, unit ] [, number ] ) | Значение показателя на дату со смещением: «столько же год назад». Единица — year,… | нужна дата в разрезе |
AT_DATE | AT_DATE( measure, [ date ], target_date ) | Значение показателя на заданную дату: константу (#2026-01-01#, TODAY()) либо выражение… | нужна дата в разрезе |
Логические функции
Разбор с примерами — логические функции.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
IF | IF cond THEN val [ ELSEIF … ] ELSE def END | Возвращает значение по первому истинному условию. | |
IFNULL | IFNULL( value, default ) | Возвращает value, либо default, если value пустое. | |
ISNULL | ISNULL( value ) | Истина, если значение пустое (NULL). | |
ZN | ZN( number ) | Заменяет NULL на 0. |
Математические функции
Разбор с примерами — математические функции.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
ABS | ABS( number ) | Абсолютное значение числа. | |
ACOS | ACOS( number ) | Арккосинус. | |
ASIN | ASIN( number ) | Арксинус. | |
ATAN | ATAN( number ) | Арктангенс. | |
ATAN2 | ATAN2( y, x ) | Арктангенс y/x с учётом четверти. | |
CEILING | CEILING( number ) | Округление вверх до целого. | |
COS | COS( number ) | Косинус (радианы). | |
COT | COT( number ) | Котангенс (радианы). | только в прямом запросе |
DEGREES | DEGREES( number ) | Перевод радиан в градусы. | |
DIV | DIV( number, number ) | Целочисленное деление — дробная часть отбрасывается. | |
DIV_SAFE | DIV_SAFE( number, number [, default ] ) | Целочисленное деление; при делителе 0 возвращает default; третий аргумент на деле обязателен. | |
EXP | EXP( number ) | Экспонента (e в степени number). | |
FDIV_SAFE | FDIV_SAFE( number, number [, default ] ) | Дробное деление; при делителе 0 возвращает default; третий аргумент на деле обязателен. | |
FLOOR | FLOOR( number ) | Округление вниз до целого. | |
GREATEST | GREATEST( a, b, … ) | Наибольшее из перечисленных значений; NULL в аргументах даёт NULL. | |
LEAST | LEAST( a, b, … ) | Наименьшее из перечисленных значений; NULL в аргументах даёт NULL. | |
LN | LN( number ) | Натуральный логарифм. | |
LOG | LOG( number, base ) | Логарифм числа по заданному основанию. | |
LOG10 | LOG10( number ) | Десятичный логарифм. | |
PI | PI() | Число π. | |
POWER | POWER( number, exp ) | Возведение в степень. | |
RADIANS | RADIANS( number ) | Перевод градусов в радианы. | |
ROUND | ROUND( number [, precision ] ) | Округление до заданной точности. | |
SIGN | SIGN( number ) | Знак числа: -1, 0 или 1. | |
SIN | SIN( number ) | Синус (радианы). | |
SQRT | SQRT( number ) | Квадратный корень. | |
SQUARE | SQUARE( number ) | Квадрат числа. | |
TAN | TAN( number ) | Тангенс (радианы). |
Строковые функции
Разбор с примерами — строковые функции.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
CHAR | CHAR( code ) | Символ по коду Unicode. | нельзя агрегировать |
CONCAT | CONCAT( a, b, … ) | Объединяет аргументы в одну строку. | |
CONTAINS | CONTAINS( string, substr ) | Истина, если строка содержит подстроку. | |
ENDSWITH | ENDSWITH( string, suffix ) | Истина, если строка заканчивается суффиксом. | |
FIND | FIND( string, substr [, start ] ) | Позиция подстроки в строке. | |
ICONTAINS | ICONTAINS( string, substr ) | CONTAINS без учёта регистра. | |
IENDSWITH | IENDSWITH( string, suffix ) | ENDSWITH без учёта регистра. | |
ISTARTSWITH | ISTARTSWITH( string, prefix ) | STARTSWITH без учёта регистра. | |
LEFT | LEFT( string, n ) | Первые n символов строки. | |
LEN | LEN( string ) | Длина строки в символах. | |
LOWER | LOWER( string ) | Переводит в нижний регистр. | |
LTRIM | LTRIM( string ) | Убирает пробелы слева. | |
REGEXP_EXTRACT | REGEXP_EXTRACT( string, pattern ) | Первое совпадение с регулярным выражением; без совпадения — NULL. | нельзя агрегировать |
REGEXP_EXTRACT_NTH | REGEXP_EXTRACT_NTH( string, pattern, n ) | n-е совпадение с регулярным выражением, нумерация с единицы. | нельзя агрегировать |
REGEXP_MATCH | REGEXP_MATCH( string, pattern ) | Истина, если в строке найдено совпадение с регулярным выражением. | нельзя агрегировать |
REGEXP_REPLACE | REGEXP_REPLACE( string, pattern, repl ) | Заменяет все вхождения; ссылка на группу — \1. | нельзя агрегировать |
REPLACE | REPLACE( string, from, to ) | Замена всех вхождений подстроки. | |
RIGHT | RIGHT( string, n ) | Последние n символов строки. | |
RTRIM | RTRIM( string ) | Убирает пробелы справа. | |
SPACE | SPACE( n ) | Строка из n пробелов. | нельзя агрегировать |
SPLIT | SPLIT( string, delimiter, n ) | n-я часть строки; отрицательный номер отсчитывается с конца. | нельзя агрегировать |
STARTSWITH | STARTSWITH( string, prefix ) | Истина, если строка начинается с префикса. | |
SUBSTR | SUBSTR( string, from [, len ] ) | Подстрока с позиции from. | |
TRIM | TRIM( string ) | Убирает пробелы по краям. | |
UPPER | UPPER( string ) | Переводит в верхний регистр. | |
UTF8 | UTF8( string ) | Перекодирует строку в UTF-8. | источник не исполняет |
Функции даты и времени
Разбор с примерами — функции даты и времени.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
DATEADD | DATEADD( date [, unit [, n ] ] ) | Сдвигает дату на n единиц; по умолчанию на один день. Смещение — константа. | |
DATEPART | DATEPART( date, unit ) | Часть даты по имени единицы — то же, что одноимённая функция: DATEPART(d, 'month')… | |
DATETRUNC | DATETRUNC( date, unit ) | Округляет дату вниз до единицы: year, quarter, month, day, hour, minute, second. | |
DAY | DAY( date ) | День месяца. | |
DAYOFWEEK | DAYOFWEEK( date ) | День недели. | |
HOUR | HOUR( datetime ) | Часы. | нужно поле с временем |
MINUTE | MINUTE( datetime ) | Минуты. | нужно поле с временем |
MONTH | MONTH( date ) | Месяц даты (1–12). | |
NOW | NOW() | Текущие дата и время. | |
QUARTER | QUARTER( date ) | Квартал даты (1–4). | |
SECOND | SECOND( datetime ) | Секунды. | нужно поле с временем |
TODAY | TODAY() | Текущая дата. | |
WEEK | WEEK( date ) | Номер недели. | |
YEAR | YEAR( date ) | Год даты. |
Преобразование типов
Разбор с примерами — преобразование типов.
| Функция | Синтаксис | Что делает | Особенности |
|---|---|---|---|
BOOL | BOOL( value ) | Преобразует значение в логическое. | источник не исполняет |
DATE | DATE( value ) | Преобразует значение в дату. | |
DATETIME | DATETIME( value ) | Преобразует значение в дату и время. | |
DATETIME_PARSE | DATETIME_PARSE( string ) | Разбирает строку в дату и время. | источник не исполняет |
DATE_PARSE | DATE_PARSE( string ) | Разбирает строку в дату. | источник не исполняет |
DB_CAST | DB_CAST( value, type ) | Приведение типа средствами СУБД. | источник не исполняет |
FLOAT | FLOAT( value ) | Преобразует значение в дробное число. | |
INT | INT( value ) | Преобразует значение в целое число. | |
STR | STR( value ) | Преобразует значение в строку. |
Что дальше
- Вычисляемые поля — как написать формулу и где она применяется.
- Поля, фильтры и сортировка — как поле попадает на полку виджета.
- Ограничения текущей версии — что язык формул не умеет.