Все функции

Остаток (%)

Синтаксис:number_1 % number_2

Возвращает остаток от деления первого числа number_1 на число number_2.

Умножение (*)

Синтаксис:value_1 * value_2

Если оба аргумента — числа, то возвращает результат умножения числа value_1 на число value_2.

Если один из аргументов — Строка, а другой — Целое число, возвращает строку, повторенную заданное количество раз.

Сложение и конкатенация (+)

Синтаксис:value_1 + value_2

Имеет различное поведение в зависимости от типов аргументов. Возможные варианты приведены в таблице:

Тип value_1Тип value_2Возвращаемое значение
Дробное число | Целое числоДробное число | Целое числоСумма чисел value_1 и value_2.
ДатаДробное число | Целое числоДата, на value_2 дней большая, чем value_1 (с округлением вниз до целого количества дней).
Дата и времяДробное число | Целое числоДата со временем, на value_2 дней большая, чем value_1. Если value_2 содержит дробную часть, то она пересчитыватся в часы (1/24), минуты (1/1440) и секунды (1/86400).
СтрокаСтрокаОбъединение (конкатенация) строк value_1 и value_2.
Массив дробных чисел | Массив целых числел | Массив строкМассив дробных чисел | Массив целых числел | Массив строкОбъединение (конкатенация) массивов value_1 и value_2.

Изменение порядка аргументов не влияет на результат.

Вычитание (-)

Синтаксис:value_1 - value_2

Имеет различное поведение в зависимости от типов аргументов. Возможные варианты приведены в таблице:

Тип value_1Тип value_2Возвращаемое значение
Дробное число | Целое числоДробное число | Целое числоРазность чисел value_1 и value_2.
ДатаДробное число | Целое числоДата, на value_2 дней меньшая, чем value_1 (с округлением вниз до целого количества дней).
Дата и времяДробное число | Целое числоДата со временем, на value_2 дней меньшая, чем value_1. Если value_2 содержит дробную часть, то она пересчитыватся в часы (1/24), минуты (1/1440) и секунды (1/86400).
ДатаДатаРазность двух дат в днях.
ЛюбойЛюбойРазность двух дат в днях: целая часть — количество целых дней, дробная — количество часов, минут и секунд как долей целого дня (час — 1/24 и т.д.).
Дата и времяДата и времяРазность двух дат в днях: целая часть — количество целых дней, дробная — количество часов, минут и секунд как долей целого дня (час — 1/24 и т.д.).

Деление (/)

Синтаксис:number_1 / number_2

Делит число number_1 на число number_2.

Сравнение

Синтаксис:
value_1 = value_2
или
value_1 != value_2
или
value_1 < value_2
или
value_1 <= value_2
или
value_1 > value_2
или
value_1 >= value_2

Сравнивают значение value_1 со значением value_2.

Степень (^)

Синтаксис:base ^ power

Возводит число base в степень power.

CASE

Синтаксис:
CASE expression WHEN value_1 THEN result_1 [ WHEN value_2 THEN result_2 ... ] ELSE default_result END
или
CASE( expression, value_1, result_1, [ value_2, result_2, ... ] default_result )

Сравнивает выражение expression с последовательностью значений value_1, value_2, ... и возвращает результат для первого совпадения.
Если совпадений не найдено, то возвращает default_result.

IF

Синтаксис:
IF condition_1 THEN result_1 [ ELSEIF condition_2 THEN result_2 ... ] ELSE default_result END
или
IF( condition_1, result_1, [ condition_2, result_2, ... ] default_result )

Проверяет последовательно логические выражения condition_1, condition_2, ... и возвращает соответсвующий результат для первого выполнения.
Если все condition_1, condition_2, ... возвращают FALSE, то блок возвращает default_result.

ABS

Синтаксис:ABS( number )

Возвращает абсолютное значение заданного числа number.

ACOS

Синтаксис:ACOS( number )

Возвращает выраженный в радианах арккосинус числа number.

AGO

Синтаксис:
AGO( measure, date_dimension [ , unit [ , number ] ] )
или
AGO( measure, date_dimension [ , unit [ , number ] ] [ BEFORE FILTER BY ... ] [ IGNORE DIMENSIONS ... ] )

Вычисляет measure для даты/времени с указанным смещением.
Аргумент date_dimension задает измерение, вдоль которого делается смещение.
Аргумент number задается целым числом. Может принимать отрицательные значения.
Аргумент unit принимает следующие значения:

  • "year" — год;
  • "month" — месяц;
  • "week" — неделя;
  • "day" — день;
  • "hour" — час;
  • "minute" — минута;
  • "second" — секунда.

Возможен вариант использования AGO( measure, date_dimension, number ). В этом случае аргумент unit — количество дней.

См. также AT_DATE, LAG.

ALL_CONCAT

Синтаксис:
ALL_CONCAT( expression [ , separator ] )
или
ALL_CONCAT( expression [ , separator ] [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает строку, которая содержит все уникальные значения expression, разделенные separator (по умолчанию разделитель — запятая).

AND

Синтаксис:value_1 AND value_2

Выполняет логическое соединение двух выражений по условию И.

ANY

Синтаксис:
ANY( value )
или
ANY( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает произвольное значение value из группы. Это недетерминированная агрегация — результат может различаться от запроса к запросу на одних и тех же входных данных.

ARG_MAX

Синтаксис:
ARG_MAX( value, comp )
или
ARG_MAX( value, comp [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает значение value, соответствующее максимальному значению comp. Если есть несколько значений value, соответствующих максимальному значению comp, то возвращет первое попавшееся из них. Это делает функцию недетерминированной.

ARG_MIN

Синтаксис:
ARG_MIN( value, comp )
или
ARG_MIN( value, comp [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает значение value, соответствующее минимальному значению comp. Если есть несколько значений value, соответствующих минимальному значению comp, то возвращет первое попавшееся из них. Это делает функцию недетерминированной.

ARR_AVG

Синтаксис:ARR_AVG( array )

Возвращает среднее значение элементов в массиве array.

ARR_MAX

Синтаксис:ARR_MAX( array )

Возвращает значение максимального элемента в массиве array.

ARR_MIN

Синтаксис:ARR_MIN( array )

Возвращает значение минимального элемента в массиве array.

ARR_PRODUCT

Синтаксис:ARR_PRODUCT( array )

Возвращает произведение элементов массива array.

ARR_REMOVE

Синтаксис:ARR_REMOVE( array, value )

Удаляет из массива array все элементы, равные value.

ARR_STR

Синтаксис:ARR_STR( array [ , delimiter [ , null_str ] ] )

Из элементов массива array формирует строку, используя delimiter в качестве разделителя (запятая по умолчанию) и null_str в качестве строки, подставляемой вместо NULL (по умолчанию такие элементы пропускаются и в результат не попадают).

См. также STR

ARR_SUM

Синтаксис:ARR_SUM( array )

Возвращает сумму элементов в массиве array.

ARRAY

Синтаксис:ARRAY( value_1, value_2, value_3 [ , ... ] )

Возвращает массив, содержащий переданные элементы.

ASCII

Синтаксис:ASCII( string )

Возвращает числовое представление первого символа строки.

ASIN

Синтаксис:ASIN( number )

Возвращает выраженный в радианах арксинус числа number.

AT_DATE

Синтаксис:
AT_DATE( measure, date_dimension, date_expr )
или
AT_DATE( measure, date_dimension, date_expr [ BEFORE FILTER BY ... ] [ IGNORE DIMENSIONS ... ] )

Вычисляет measure для даты/времени, заданных выражением date_expr.
Аргумент date_dimension задает измерение, вдоль которого делается смещение.

См. также AGO, LAG.

ATAN

Синтаксис:ATAN( number )

Возвращает выраженный в радианах арктангенс числа number.

ATAN2

Синтаксис:ATAN2( x, y )

Возвращает выраженный в радианах арктангенс для заданных координат x и y.

AVG

Синтаксис:
AVG( value )
или
AVG( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает среднее для всех значений. Работает с числовыми типами данных и с типами Дата.

AVG (оконная)

Синтаксис:
AVG( value TOTAL | WITHIN ... | AMONG ... )
или
AVG( value TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает среднее арифметическое значений выражения. Работает только с числовыми типами данных.

AVG_IF

Синтаксис:
AVG_IF( expression, condition )
или
AVG_IF( expression, condition [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает среднее для всех значений, которые удовлетворяют условию condition. Если значения отсутствуют, то возвращается NULL. Работает только с числовыми типами данных.

AVG_IF (оконная)

Синтаксис:
AVG_IF( expression, condition TOTAL | WITHIN ... | AMONG ... )
или
AVG_IF( expression, condition TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает среднее для всех значений, которые удовлетворяют условию condition. Если значения отсутствуют, то возвращается NULL. Работает только с числовыми типами данных.

BETWEEN

Синтаксис:value [ NOT ] BETWEEN low AND high

Возвращает TRUE, если value принадлежит диапазону значений с low по high.

Вариант value NOT BETWEEN low AND high возвращает противоположное значение

BOLD

Синтаксис:BOLD( text )

Выделяет переданный текст жирным шрифтом.

BOOL

Синтаксис:BOOL( expression )

Переводит выражение expression в логический тип по следующим правилам:

ТипFALSETRUE
Дробное число | Целое число0, 0.0Все остальные
СтрокаПустая строка ("")Все остальные
ЛогическийFALSETRUE
Дата | Дата и время-TRUE

CAST_ARR_FLOAT

Синтаксис:CAST_ARR_FLOAT( array )

Приводит массив array к массиву дробных значений. Правила преобразования аналогичны функции FLOAT.

CAST_ARR_INT

Синтаксис:CAST_ARR_INT( array )

Приводит массив array к массиву целых чисел. Правила преобразования аналогичны функции INT.

CAST_ARR_STR

Синтаксис:CAST_ARR_STR( array )

Приводит массив array к массиву строк. Правила преобразования аналогичны функции STR.

CEILING

Синтаксис:CEILING( number )

Округляет значение до ближайшего целого числа в большую сторону.

CHAR

Синтаксис:CHAR( string )

Преобразовывает числовое представление символа ASCII в значение.

COMPARE

Синтаксис:COMPARE( left, right, epsilon )

Возвращает:

  • 0, если left и right отличаются не более чем на epsilon.
  • -1, если left меньше right более чем на epsilon.
  • 1, если left больше right более чем на epsilon.

CONCAT

Синтаксис:CONCAT( arg_1, arg_2, arg_3 [ , ... ] )

Объединяет произвольное количество строк. При использовании нестроковых типов происходит преобразование в строку и объединение.

CONTAINS (массивы)

Синтаксис:CONTAINS( array, value )

Возвращает TRUE, если array содержит value.

CONTAINS (строковая)

Синтаксис:CONTAINS( string, substring )

Возвращает TRUE, если строка string содержит в себе подстроку substring. Для регистронезависимой проверки см. ICONTAINS.

CONTAINS_ALL

Синтаксис:CONTAINS_ALL( array_1, array_2 )

Возвращает TRUE, если array_1 содержит все элементы array_2.

CONTAINS_ANY

Синтаксис:CONTAINS_ANY( array_1, array_2 )

Возвращает TRUE, если array_1 содержит хотя бы один элемент из array_2.

CONTAINS_SUBSEQUENCE

Синтаксис:CONTAINS_SUBSEQUENCE( array_1, array_2 )

Возвращает TRUE, если array_2 является непрерывной подпоследовательностью array_1. Другими словами, возвращает TRUE исключительно если array1 = prefix + array2 + suffix.

COS

Синтаксис:COS( number )

Возвращает косинус числа number, заданного в радианах.

COT

Синтаксис:COT( number )

Возвращает котангенс числа number, заданного в радианах.

COUNT

Синтаксис:
COUNT( [ value ] )
или
COUNT( [ value ] [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает количество элементов в группе.

COUNT (оконная)

Синтаксис:
COUNT( [ value ] TOTAL | WITHIN ... | AMONG ... )
или
COUNT( [ value ] TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает количество элементов в заданном окне.

COUNT_IF

Синтаксис:
COUNT_IF( condition )
или
COUNT_IF( condition [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает количество элементов в группе, которые удовлетворяют условию condition.

COUNT_IF (оконная)

Синтаксис:
COUNT_IF( expression, condition TOTAL | WITHIN ... | AMONG ... )
или
COUNT_IF( expression, condition TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает количество элементов в заданном окне, которые удовлетворяют условию expression.

COUNT_ITEM

Синтаксис:COUNT_ITEM( array, value )

Возвращает количество элементов массива array, равных value. Тип value должен соответствовать типу элементов array.

COUNTD

Синтаксис:
COUNTD( value )
или
COUNTD( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает количество уникальных значений в группе.

См. также COUNTD_APPROX.

COUNTD_APPROX

Синтаксис:
COUNTD_APPROX( value )
или
COUNTD_APPROX( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает приблизительное количество уникальных значений в группе. Работает быстрее функции COUNTD, но не гарантирует точность.

COUNTD_IF

Синтаксис:
COUNTD_IF( expression, condition )
или
COUNTD_IF( expression, condition [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает количество уникальных значений в группе, которые удовлетворяют условию condition.

См. также COUNTD_APPROX.

DATE

Синтаксис:DATE( expression [ , timezone ] )

Переводит выражение expression в формат даты.

Дата должна быть определена в формате YYYY-MM-DD.

Если expression является числом, то при наличии дополнительного параметра timezone дата рассчитывается для указанной временной зоны.

DATE_PARSE

Синтаксис:DATE_PARSE( value )

Переводит выражение value в формат даты. В отличие от DATE, поддерживает множество форматов.

DATEADD

Синтаксис:DATEADD( datetime [ , unit [ , number ] ] )

Возвращает дату, полученную в результате добавления unit в количестве number к указанной дате datetime.

Аргумент number задается целым числом. Может принимать отрицательные значения.
Аргумент unit принимает следующие значения:

  • "year" — год;
  • "month" — месяц;
  • "day" — день;
  • "hour" — час;
  • "minute" — минута;
  • "second" — секунда.

DATEPART

Синтаксис:DATEPART( datetime, unit [ , firstday ] )

Возвращает часть даты в виде целого числа.

В зависимости от аргумента unit возвращает следующие значения:

  • "year" — номер года (см. YEAR);
  • "quarter" — номер квартала года (от 1 до 4) (см. QUARTER);
  • "month" — номер месяца в году (см. MONTH);
  • "week" — номер недели в году по ISO 8601 (см. WEEK);
  • "dayofweek", "dow" — номер дня недели (см. DAYOFWEEK);
  • "day" — номер дня в месяце (см. DAY);
  • "hour" — номер часа в дне (см. HOUR);
  • "minute" — номер минуты в часе (см. MINUTE);
  • "second" — номер секунды в минуте (см. SECOND).

Если выбран "dayofweek", то дополнительным параметром firstday можно задать, какой день недели считать первым — по умолчанию это понедельник. Более подробно об этом параметре смотрите в описании функции DAYOFWEEK.

DATETIME

Синтаксис:DATETIME( expression [ , timezone ] )

Переводит выражение expression в формат даты и времени. При переводе Date в DateTime время определяется, как 00:00:00.
Дата должна быть определена в формате YYYY-MM-DDThh:mm:ss или YYYY-MM-DD hh:mm:ss.

При наличии дополнительного параметра timezone дата и время рассчитываются для указанной временной зоны.

DATETIME_PARSE

Синтаксис:DATETIME_PARSE( value )

Переводит выражение value в формат даты и времени. В отличие от DATETIME, поддерживает множество форматов.

DATETRUNC

Синтаксис:DATETRUNC( datetime, unit [ , number ] )

Возвращает дату, округленную по аргументу unit.

Если задан аргумент number, то происходит округление до этого количества временных единиц. Отсутствие аргумента эквивалентно значению 1.

Поддерживаемые значения unit:

  • "second";
  • "minute";
  • "hour";
  • "day" (при заданном number используется номер дня в году);
  • "week";
  • "month";
  • "quarter";
  • "year".

DAY

Синтаксис:DAY( datetime )

Возвращает номер дня в месяце в указанной дате datetime.

DAYOFWEEK

Синтаксис:DAYOFWEEK( datetime [ , firstday ] )

Возвращает день недели в соответствии с ISO 8601.

  • Понедельник — 1;
  • Воскресенье — 7.

Если указан дополнительный параметр firstday, то этот день считается первым в неделе. Допустимые значения:

  • "Monday", "Mon" — понедельник;
  • "Tuesday", "Tue" — вторник;
  • "Wednesday", "Wed" — среда;
  • "Thursday", "Thu" — четверг;
  • "Friday", "Fri" — пятница;
  • "Saturday", "Sat" — суббота;
  • "Sunday", "Sun" — воскресенье.

DB_CAST

Синтаксис:DB_CAST( expression, native_type [ , param_1 [ , param_2 ] ] )

Переводит выражение expression в указанный нативный тип данных native_type.

Поддерживаются следующие типы:

Источник данныхТип данныхНативный типПараметры нативного типаКомментарий
ClickHouseДатаDate
ClickHouseДатаDate32
ClickHouseДробное числоFloat32
ClickHouseДробное числоFloat64
ClickHouseДробное числоDecimalЦелое число, Целое число
ClickHouseЦелое числоInt8
ClickHouseЦелое числоInt16
ClickHouseЦелое числоInt32
ClickHouseЦелое числоInt64
ClickHouseЦелое числоUInt8
ClickHouseЦелое числоUInt16
ClickHouseЦелое числоUInt32
ClickHouseЦелое числоUInt64
ClickHouseСтрокаString
PostgreSQLМассив дробных чиселdouble precision[]
PostgreSQLМассив дробных чиселreal[]
PostgreSQLМассив дробных чиселnumeric[]Целое число, Целое число
PostgreSQLМассив целых числелsmallint[]
PostgreSQLМассив целых числелinteger[]
PostgreSQLМассив целых числелbigint[]
PostgreSQLМассив строкtext[]
PostgreSQLМассив строкcharacter varying[]
PostgreSQLМассив строкvarchar[]
PostgreSQLДробное числоdouble precision
PostgreSQLДробное числоreal
PostgreSQLДробное числоnumericЦелое число, Целое число
PostgreSQLЦелое числоsmallint
PostgreSQLЦелое числоinteger
PostgreSQLЦелое числоbigint
PostgreSQLСтрокаtext
PostgreSQLСтрокаcharacterЦелое числоАлиас: char
PostgreSQLСтрокаcharacter varyingЦелое числоАлиас: varchar
PostgreSQLСтрокаcharЦелое числоАлиас для character
PostgreSQLСтрокаvarcharЦелое числоАлиас для character varying

DEGREES

Синтаксис:DEGREES( radians )

Преобразует радианы в градусы.

DIV

Синтаксис:DIV( number_1, number_2 )

Возвращает результат деления number_1 на number_2.
Результат будет округлен до целого числа.

DIV_SAFE

Синтаксис:DIV_SAFE( numerator, denominator [ , fallback_value ] )

Возвращает результат деления numerator на denominator. В случае деления на ноль возвращает fallback_value. Если число fallback_value не указано, возвращает NULL.
Результат будет округлен до целого числа.

ENDSWITH

Синтаксис:ENDSWITH( string, substring )

Возвращает TRUE, если строка string оканчивается на подстроку substring.Для регистронезависимой проверки см. IENDSWITH.

EXP

Синтаксис:EXP( number )

Возвращает результата возведения числа e в степень number.

FDIV_SAFE

Синтаксис:FDIV_SAFE( numerator, denominator [ , fallback_value ] )

Возвращает результат деления numerator на denominator. В случае деления на ноль возвращает fallback_value. Если число fallback_value не указано, возвращает NULL.

FIND

Синтаксис:FIND( string, substring [ , start_index ] )

Возвращает индекс позиции первого символа подстроки substring в строке string.

Если указан опциональный параметр start_index, то поиск начнется с указанной позиции.

FIRST (оконная)

Синтаксис:
FIRST( value )
или
FIRST( value [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает значение value из первой строки заданного окна. См. также LAST.

FLOAT

Синтаксис:FLOAT( expression )

Переводит выражение expression в формат дробного числа по следующим правилам:

ТипЗначение
Дробное число | Целое числоИсходное значение.
Дата | Дата и времяUnix-время соответствующее дате и времени. Если значение содержит в себе информацию о временной зоне, то она учитывается при вычислении. Если же временная зона неизвестна, то время считается UTC.
СтрокаЧисло из строки в десятичной записи.
ЛогическийTRUE1.0, FALSE0.0.

FLOOR

Синтаксис:FLOOR( number )

Округляет значение до ближайшего целого числа в меньшую сторону.

GEOPOINT

Синтаксис:GEOPOINT( value_1 [ , value_2 ] )

Формирует значение типа геоточка. Принимает на вход строку, либо значение типа "геоточка", либо координаты — широту value_1 и долготу value_2. Если на вход подается одна строка, в ней должен содержаться список из двух чисел, координат (широты и долготы) в JSON-синтаксисе.

GEOPOLYGON

Синтаксис:GEOPOLYGON( value )

Переводит выражение value в формат геополигона.

GET_ITEM

Синтаксис:GET_ITEM( array, index )

Возвращает элемент с индексом index из массива array. Индекс должен быть целым числом. Индексы в массиве начинаются с единицы.

GREATEST

Синтаксис:GREATEST( value_1, value_2, value_3 [ , ... ] )

Возвращает наибольшее из значений.

См. также LEAST.

В зависимости от указанного типа данных, возвращает:

  • наибольшее число;
  • последнюю строку в алфавитном порядке;
  • позднюю дату;
  • TRUE при выборе из TRUE и FALSE для логического типа.

HOUR

Синтаксис:HOUR( datetime )

Возвращает номер часа в дне в указанной дате и времени datetime. При указании даты без времени возвращает 0.

ICONTAINS

Синтаксис:ICONTAINS( string, substring )

Регистронезависимый вариант CONTAINS. Возвращает TRUE, если строка string содержит в себе подстроку substring.

IENDSWITH

Синтаксис:IENDSWITH( string, substring )

Регистронезависимый вариант ENDSWITH. Возвращает TRUE, если строка string оканчивается на подстроку substring.

IFNULL

Синтаксис:IFNULL( check_value, alt_value )

Возвращает check_value, если оно не NULL. В противном случае возвращает alt_value.

IN

Синтаксис:item [ NOT ] IN (<list>)

Проверяет условие соответствия значения хотя бы одному из значений, перечисленных в IN(...).

Вариант item NOT IN (<list>) возвращает противоположное значение

INT

Синтаксис:INT( expression )

Переводит выражение expression в формат целого числа по следующим правилам:

ТипЗначение
Целое числоИсходное значение.
Дробное числоЦелая часть числа (округление вниз).
Дата | Дата и времяUnix-время соответствующее дате и времени. Если значение содержит в себе информацию о временной зоне, то она учитывается при вычислении. Если же временная зона неизвестна, то время считается UTC.
СтрокаЧисло из строки в десятичной записи.
ЛогическийTRUE1, FALSE0.

IS FALSE

Синтаксис:value IS [ NOT ] FALSE

Проверяет, является ли значение value ложным (FALSE).

Вариант value IS NOT FALSE возвращает противоположное значение.

ISNULL

Синтаксис:
ISNULL( expression )
или
expression IS [ NOT ] NULL

Возвращает TRUE, если expression является NULL. В противном случае возвращает FALSE.

Вариант expression IS NOT NULL возвращает противоположное значение.

ISTARTSWITH

Синтаксис:ISTARTSWITH( string, substring )

Регистронезависимый вариант STARTSWITH. Возвращает TRUE, если строка string начинается на подстроку substring.

IS TRUE

Синтаксис:value IS [ NOT ] TRUE

Проверяет, является ли значение value истинным (TRUE).

Вариант value IS NOT TRUE возвращает противоположное значение.

ITALIC

Синтаксис:ITALIC( text )

Выделяет переданный текст курсивом.

LAG (оконная)

Синтаксис:
LAG( value [ , offset [ , default ] ] )
или
LAG( value [ , offset [ , default ] ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает значение value из строки со смещением offset относительно текущей в рамках заданного окна:

  • положительное значение offset делает смещение назад;
  • отрицательное значение offset делает смещение вперед.

По умолчанию offset равно 1.

Если значение отсутствует (offset ссылается на строку до первой или после последней), то возвращается значение default в качестве результата. Если default не задано, то используется NULL.

См. также AGO в качестве неоконной альтернативы.

LAST (оконная)

Синтаксис:
LAST( value )
или
LAST( value [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает значение value из последней строки заданного окна. См. также FIRST.

LEAST

Синтаксис:LEAST( value_1, value_2, value_3 [ , ... ] )

Возвращает наименьшее из значений.

См. также GREATEST.

В зависимости от указанного типа данных, возвращает:

  • наименьшее число;
  • первую строку в алфавитном порядке;
  • раннюю дату;
  • FALSE при выборе из TRUE и FALSE для логического типа.

LEFT

Синтаксис:LEFT( string, number )

Возвращает строку, которая содержит указанное количество символов number с начала строки string.

LEN

Синтаксис:LEN( value )

Возвращает количество символов в строке или элементов в массиве value.

LIKE

Синтаксис:string_1 [ NOT ] LIKE string_2

Сравнивает строку string_1 со шаблоном string_2 и в случае совпадения возвращает TRUE.
В качестве string_2 можно задать значение или использовать знак %, который соответствует строке любой длины.

Вариант string_1 NOT LIKE возвращает противоположное значение.

LN

Синтаксис:LN( number )

Возвращает натуральный логарифм числа number. Возвращает NULL, если число меньше или равно 0.

LOG

Синтаксис:LOG( value, base )

Возвращает логарифм числа value по основанию числа base. Возвращает NULL, если число value меньше или равно 0.

LOG10

Синтаксис:LOG10( number )

Возвращает логарифм числа number по основанию 10. Возвращает NULL, если число меньше или равно 0.

LOWER

Синтаксис:LOWER( string )

Возвращает строку string в нижнем регистре.

LTRIM

Синтаксис:LTRIM( string )

Возвращает строку string без знаков пробела в начале строки.

MARKUP

Синтаксис:MARKUP( arg_1, arg_2, arg_3 [ , ... ] )

Объединяет размеченный текст. Также может быть использован для конвертации обычных строк в размеченный текст.

MAVG (оконная)

Синтаксис:
MAVG( value, rows_1 [ , rows_2 ] )
или
MAVG( value, rows_1 [ , rows_2 ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает скользящее среднее значений по окну записей. Значение определяется порядком сортировки и аргументами:

rows_1rows_2Окно
положительное-Текущая запись и rows_1 предшествующих.
отрицательное-Текущая запись и -rows_1 последующих.
любой знаклюбой знакrows_1 предшествующих записей, текущая и rows_2 последующих.

Аналогичное поведение у оконных функций MSUM, MCOUNT, MMIN, MMAX.

См. также AVG, RAVG.

MAX

Синтаксис:
MAX( value )
или
MAX( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает максимальное значение.

Если value:

  • число — возвращает наибольшее число;
  • дата — возвращает самую позднюю дату;
  • строка — возвращает последнее значение в алфавитном порядке.

MAX (оконная)

Синтаксис:
MAX( value TOTAL | WITHIN ... | AMONG ... )
или
MAX( value TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает максимальное значение.

Если value:

  • число — возвращает наибольшее число;
  • дата — возвращает самую позднюю дату;
  • строка — возвращает последнее значение в алфавитном порядке.

MCOUNT (оконная)

Синтаксис:
MCOUNT( value, rows_1 [ , rows_2 ] )
или
MCOUNT( value, rows_1 [ , rows_2 ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает количество значений (не равных NULL) по окну записей, которое определяется порядком сортировки и аргументами:

rows_1rows_2Окно
положительное-Текущая запись и rows_1 предшествующих.
отрицательное-Текущая запись и -rows_1 последующих.
любой знаклюбой знакrows_1 предшествующих записей, текущая и rows_2 последующих.

Аналогичное поведение у оконных функций MSUM, MMIN, MMAX, MAVG.

См. также COUNT, RCOUNT.

MEDIAN

Синтаксис:
MEDIAN( value )
или
MEDIAN( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Вовзращает медианное значение.

MIN

Синтаксис:
MIN( value )
или
MIN( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает минимальное значение.

Если value:

  • число — возвращает наименьшее число;
  • дата — возвращает самую раннюю дату;
  • строка — возвращает первое значение в алфавитном порядке.

MIN (оконная)

Синтаксис:
MIN( value TOTAL | WITHIN ... | AMONG ... )
или
MIN( value TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает минимальное значение.

Если value:

  • число — возвращает наименьшее число;
  • дата — возвращает самую раннюю дату;
  • строка — возвращает первое значение в алфавитном порядке.

MINUTE

Синтаксис:MINUTE( datetime )

Возвращает номер минуты в часе в указанной дате datetime. При указании даты без времени возвращает 0.

MMAX (оконная)

Синтаксис:
MMAX( value, rows_1 [ , rows_2 ] )
или
MMAX( value, rows_1 [ , rows_2 ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает скользящий максимум значений по окну записей. Значение определяется порядком сортировки и аргументами:

rows_1rows_2Окно
положительное-Текущая запись и rows_1 предшествующих.
отрицательное-Текущая запись и -rows_1 последующих.
любой знаклюбой знакrows_1 предшествующих записей, текущая и rows_2 последующих.

Аналогичное поведение у оконных функций MSUM, MCOUNT, MMIN, MAVG.

См. также MAX, RMAX.

MMIN (оконная)

Синтаксис:
MMIN( value, rows_1 [ , rows_2 ] )
или
MMIN( value, rows_1 [ , rows_2 ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает скользящий минимум значений по окну записей, определяемому порядком сортировки и аргументами:

rows_1rows_2Окно
положительное-Текущая запись и rows_1 предшествующих.
отрицательное-Текущая запись и -rows_1 последующих.
любой знаклюбой знакrows_1 предшествующих записей, текущая и rows_2 последующих.

Аналогичное поведение у оконных функций MSUM, MCOUNT, MMAX, MAVG.

См. также MIN, RMIN.

MONTH

Синтаксис:MONTH( datetime )

Возвращает номер месяца в году в указанной дате datetime.

MSUM (оконная)

Синтаксис:
MSUM( value, rows_1 [ , rows_2 ] )
или
MSUM( value, rows_1 [ , rows_2 ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает скользящую сумму значений по окну записей, которое определяется порядком сортировки и аргументами:

rows_1rows_2Окно
положительное-Текущая запись и rows_1 предшествующих.
отрицательное-Текущая запись и -rows_1 последующих.
любой знаклюбой знакrows_1 предшествующих записей, текущая и rows_2 последующих.

Аналогичное поведение у оконных функций MCOUNT, MMIN, MMAX, MAVG.

См. также SUM, RSUM.

Отрицание (-)

Синтаксис:-value

Возвращает число value с противоположным знаком.

NOT

Синтаксис:NOT value

Инвертирует логическое значение.

NOW

Синтаксис:NOW()

Возвращает текущую дату и время в зависимости от источника данных и типа соединения.

OR

Синтаксис:value_1 OR value_2

Выполняет логическое соединение двух выражений по условию ИЛИ.

PI

Синтаксис:PI()

Возвращает число Пи. Точность зависит от источника данных.

POWER

Синтаксис:POWER( base, power )

Возводит число base в степень power.

QUANTILE

Синтаксис:
QUANTILE( value, quant )
или
QUANTILE( value, quant [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает точный квантиль уровня quant (значение от 0 до 1).

QUANTILE_APPROX

Синтаксис:
QUANTILE_APPROX( value, quant )
или
QUANTILE_APPROX( value, quant [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает примерный квантиль уровня quant (значение от 0 до 1).

QUARTER

Синтаксис:QUARTER( datetime )

Возвращает номер квартала года (от 1 до 4) в указанной дате datetime.

RADIANS

Синтаксис:RADIANS( degrees )

Преобразует градусы degrees в радианы.

RANK (оконная)

Синтаксис:
RANK( value [ , direction ] )
или
RANK( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ BEFORE FILTER BY ... ] )

Выполняет ранжирование значений с пропусками: возвращает порядковый номер строки при сортировке по value. Строки, которые соответствуют одному и тому же значению value, имеют одно и то же значение ранга. Если первые две строки получают ранг 1, то ранг следующей строки (если значение value не совпадает) будет равен 3. Значение 2 в этом случае пропускается.

Если direction равно "desc" или не указано, то ранжирование происходит от большего к меньшему, если "asc", то от меньшего к большему. По умолчанию используется "desc".

См. также RANK_DENSE, RANK_UNIQUE, RANK_PERCENTILE.

RANK_DENSE (оконная)

Синтаксис:
RANK_DENSE( value [ , direction ] )
или
RANK_DENSE( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ BEFORE FILTER BY ... ] )

Выполняет ранжирование значений без пропусков: возвращает порядковый номер строки при сортировке по value. Строки, которые соответствуют одному и тому же значению value, имеют одно и то же значение ранга. Если первые две строки получают ранг 1, то ранг следующей строки (если значение value не совпадает) будет равен 2. Значения ранга не пропускаются.

Если direction равно "desc" или не указано, то ранжирование происходит от большего к меньшему, если "asc", то от меньшего к большему. По умолчанию используется "desc".

См. также RANK, RANK_DENSE, RANK_PERCENTILE.

RANK_PERCENTILE (оконная)

Синтаксис:
RANK_PERCENTILE( value [ , direction ] )
или
RANK_PERCENTILE( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ BEFORE FILTER BY ... ] )

Выполняет относительное ранжирование. Возвращает дробный ранг (от 0 до 1). Расчитывается как (RANK(...) - 1) / (количество строк).

Если direction равно "desc" или не указано, то ранжирование происходит от большего к меньшему, если "asc", то от меньшего к большему. По умолчанию используется "desc".

См. также RANK, RANK_DENSE, RANK_UNIQUE.

RANK_UNIQUE (оконная)

Синтаксис:
RANK_UNIQUE( value [ , direction ] )
или
RANK_UNIQUE( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ BEFORE FILTER BY ... ] )

Выполняет уникальное ранжирование. Возвращает порядковый номер строки при сортировке по value. Строки, которые соответствуют одному и тому же значению value, имеют разные значения ранга. Ни для каких двух строк значения не совпадают. Принимает все значения от 1 до значения, которое равно количеству строк.

Если direction равно "desc" или не указано, то ранжирование происходит от большего к меньшему, если "asc", то от меньшего к большему. По умолчанию используется "desc".

См. также RANK, RANK_DENSE, RANK_PERCENTILE.

RAVG (оконная)

Синтаксис:
RAVG( value [ , direction ] )
или
RAVG( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает среднее арифметическое значений в рамках окна записей, определяемого аргументом direction:

directionОкно
"asc"От первой записи до текущей.
"desc"От текущей записи до последней.

По умолчанию используется значение "asc".

Аналогичное поведение у оконных функций RSUM, RCOUNT, RMIN, RMAX.

См. также AVG, MAVG.

RCOUNT (оконная)

Синтаксис:
RCOUNT( value [ , direction ] )
или
RCOUNT( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает количество значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction:

directionОкно
"asc"От первой записи до текущей.
"desc"От текущей записи до последней.

По умолчанию используется значение "asc".

Аналогичное поведение у оконных функций RSUM, RMIN, RMAX, RAVG.

См. также COUNT, MCOUNT.

REGEXP_EXTRACT

Синтаксис:REGEXP_EXTRACT( string, pattern )

Возвращает подстроку string, которая соответствует шаблону регулярного выражения pattern.

REGEXP_EXTRACT_NTH

Синтаксис:REGEXP_EXTRACT_NTH( string, pattern, match_index )

Возвращает подстроку string, которая соответствует шаблону регулярного выражения pattern, начиная с указанного индекса.

REGEXP_MATCH

Синтаксис:REGEXP_MATCH( string, pattern )

Возвращает TRUE, если в строке string есть подстрока, которая соответствует шаблону регулярного выражения pattern.

REGEXP_REPLACE

Синтаксис:REGEXP_REPLACE( string, pattern, replace_with )

Ищет подстроку в строке string по шаблону регулярного выражения pattern и заменяет ее строкой replace_with.

Если подстрока не найдена, то строка не будет изменена.

REPLACE (массивы)

Синтаксис:REPLACE( array, old, new )

Заменяет в массиве array все элементы, равные old, на new.

REPLACE (строковая)

Синтаксис:REPLACE( string, substring, replace_with )

Ищет подстроку substring в строке string и заменяет ее строкой replace_with.

Если подстрока не найдена, то строка не будет изменена.

Синтаксис:RIGHT( string, number )

Возвращает строку, которая содержит указанное количество символов number с конца строки string.

RMAX (оконная)

Синтаксис:
RMAX( value [ , direction ] )
или
RMAX( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает максимальное из значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction:

directionОкно
"asc"От первой записи до текущей.
"desc"От текущей записи до последней.

По умолчанию используется значение "asc".

Аналогичное поведение у оконных функций RSUM, RCOUNT, RMIN, RAVG.

См. также MAX, MMAX.

RMIN (оконная)

Синтаксис:
RMIN( value [ , direction ] )
или
RMIN( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает минимальное из значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction:

directionОкно
"asc"От первой записи до текущей.
"desc"От текущей записи до последней.

По умолчанию используется значение "asc".

Аналогичное поведение у оконных функций RSUM, RCOUNT, RMAX, RAVG.

См. также MIN, MMIN.

ROUND

Синтаксис:ROUND( number [ , precision ] )

Округляет число number до указанного числа знаков precision после запятой.
Если число precision не указано, то number округляется до ближайшего целого.

RSUM (оконная)

Синтаксис:
RSUM( value [ , direction ] )
или
RSUM( value [ , direction ] [ TOTAL | WITHIN ... | AMONG ... ] [ ORDER BY ... ] [ BEFORE FILTER BY ... ] )

Возвращает сумму значений в рамках окна записей, определяемого порядком сортировки и значением аргумента direction:

directionОкно
"asc"От первой записи до текущей.
"desc"От текущей записи до последней.

По умолчанию используется значение "asc".

Аналогичное поведение у оконных функций RCOUNT, RMIN, RMAX, RAVG.

См. также SUM, MSUM.

RTRIM

Синтаксис:RTRIM( string )

Возвращает строку string без знаков пробела в конце строки.

SECOND

Синтаксис:SECOND( datetime )

Возвращает номер секунды в минуте в указанной дате datetime. При указании даты без времени возвращает 0.

SIGN

Синтаксис:SIGN( number )

Возвращает знак числа number:

  • -1 если число отрицательное;
  • 0 если число равно нулю;
  • 1 если число положительное.

SIN

Синтаксис:SIN( number )

Возвращает синус числа number, заданного в радианах.

SLICE

Синтаксис:SLICE( array, offset, length )

Возвращает часть массива array длины length, начиная с индекса offset. Индексы в массиве начинаются с единицы.

SPACE

Синтаксис:SPACE( value )

Возвращает строку с указанным количеством пробелов.

SPLIT

Синтаксис:SPLIT( orig_string [ , delimiter [ , part_index ] ] )

Возвращает подстроку из orig_string, используя символ разделителя delimiter для разделения строки на последовательность частей part_index. Разделитель по умолчанию – запятая. Если не передан part_index, то возвращается массив (только для источников ClickHouse, PostgreSQL).

SQRT

Синтаксис:SQRT( number )

Возвращает квадратный корень заданного числа.

SQUARE

Синтаксис:SQUARE( number )

Возвращает число number, возведенное в степень 2.

STARTSWITH (массивы)

Синтаксис:STARTSWITH( array_1, array_2 )

Возвращает TRUE, если значения из массива array_2 находятся в начале массива array_1.

STARTSWITH (строковая)

Синтаксис:STARTSWITH( string, substring )

Возвращает TRUE, если строка string начинается на подстроку substring. Для регистронезависимой проверки см. ISTARTSWITH.

STDEV

Синтаксис:
STDEV( value )
или
STDEV( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает статистическое стандартное отклонение всех значений в выражении на основе выборки из совокупности.

STDEVP

Синтаксис:
STDEVP( value )
или
STDEVP( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает статистическое стандартное отклонение всех значений в выражении на основе смещенной совокупности.

STR

Синтаксис:STR( expression )

Переводит выражение expression к типу строки.

SUBSTR

Синтаксис:SUBSTR( string, from_index [ , length ] )

Возвращает подстроку string, начиная с индекса from_index.

Если указан дополнительный аргумент length, то будет возвращена подстрока указанной длины.

SUM

Синтаксис:
SUM( value )
или
SUM( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает сумму всех значений выражения. Работает только с числовыми типами данных.

SUM (оконная)

Синтаксис:
SUM( value TOTAL | WITHIN ... | AMONG ... )
или
SUM( value TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает сумму всех значений выражения. Работает только с числовыми типами данных.

SUM_IF

Синтаксис:
SUM_IF( expression, condition )
или
SUM_IF( expression, condition [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает сумму всех значений выражения, которые удовлетворяют условию condition. Работает только с числовыми типами данных.

SUM_IF (оконная)

Синтаксис:
SUM_IF( expression, condition TOTAL | WITHIN ... | AMONG ... )
или
SUM_IF( expression, condition TOTAL | WITHIN ... | AMONG ... [ BEFORE FILTER BY ... ] )

Возвращает сумму всех значений выражения, которые удовлетворяют условию condition. Работает только с числовыми типами данных.

TAN

Синтаксис:TAN( number )

Возвращает тангенс числа number, заданного в радианах.

TODAY

Синтаксис:TODAY()

Возвращает текущую дату в зависимости от источника данных и типа соединения.

TOP_CONCAT

Синтаксис:
TOP_CONCAT( expression, amount [ , separator ] )
или
TOP_CONCAT( expression, amount [ , separator ] [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает строку, которая содержит amount наиболее часто встречающихся уникальных значений из expression, разделенных separator (по умолчанию разделитель — запятая).

TRIM

Синтаксис:TRIM( string )

Возвращает строку string без знаков пробела в начале и конце строки.

UNNEST

Синтаксис:UNNEST( array )

Дублирует исходную строку для каждого элемента массива array.

UPPER

Синтаксис:UPPER( string )

Возвращает строку string в верхнем регистре.

URL

Синтаксис:URL( address, text )

Оборачивает text в ссылку на URL address.

UTF8

Синтаксис:UTF8( string, old_encoding )

Переводит кодировку строки string в UTF8.

VAR

Синтаксис:
VAR( value )
или
VAR( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает статистическую дисперсию всех значений в выражении на основе выборки из совокупности.

VARP

Синтаксис:
VARP( value )
или
VARP( value [ FIXED ... | INCLUDE ... | EXCLUDE ... ] [ BEFORE FILTER BY ... ] )

Возвращает статистическую дисперсию всех значений в выражении по всей совокупности.

WEEK

Синтаксис:WEEK( value )

Возвращает номер недели в соответствии с ISO 8601. Первой считается неделя, которая содержит первый четверг года и 4.01.

YEAR

Синтаксис:YEAR( datetime )

Возвращает номер года в указанной дате datetime.

ZN

Синтаксис:ZN( expression )

Возвращает значение выражения expression, если оно не NULL. В противном случае возвращает 0.

In this article: