Перейти к содержанию

Список выражений

Для получения основ работы с выражениями ознакомьтесь со статьёй Написание выражений в редакторе.

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

Агрегации

Выражения агрегации учитывают все значения в поле. Их можно использовать только в блоке Суммировать конструктора запросов.

Average

Возвращает среднее значение значений в столбце.

Синтаксис: Average(столбец)

Пример: Average([Количество])

возвращает среднее значение для поля Количество.

Ограничения: СУБД Redshift возвращает целочисленные результаты только для столбцов целочисленного типа.

Count

Возвращает количество строк (также называемых "записями") в выбранных данных.

Синтаксис: Count

Пример: Count

если таблица или результат возвращает 10 строк, Count вернёт 10.

CountIf

Подсчитываются только строки, где условие истинно.

Синтаксис: CountIf(условие).

Пример: CountIf([Промежуточный итог] > 100)

вернёт количество строк, в которых промежуточный итог превышает 100.

Distinct

Количество уникальных значений в столбце.

Синтаксис: Distinct(столбец).

Пример: Distinct([Фамилия])

возвращает количество уникальных фамилий в столбце. Дубликаты (например, повторяющиеся фамилии «Иванов») не учитываются.

Max

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

Синтаксис: Max(столбец).

Пример: Max([Возраст])

вернёт максимальный возраст, найденный среди всех значений в столбце Возраст.

Связано: min, average, median.

Median

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

Синтаксис: Median(столбец).

Пример: Median([Возраст])

найдёт срединный возраст, при котором половина возрастов старше, а половина возрастов моложе.

Ограничения: не поддерживается Druid, H2 (Sample Database), MariaDB, MongoDB, MySQL, SQLite, Vertica, SQL Server. Presto предоставляет только приблизительные результаты.

Связано: min, max, average.

Min

Возвращает наименьшее значение, найденное в столбце.

Синтаксис: Min(столбец).

Пример: Min([Зарплата])

вернёт самую низкую зарплату в столбце «Зарплата».

Связано: max, median, average.

Percentile

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

Синтаксис: Percentile(столбец, значение-процентиля)

Пример: Percentile([Оценка], 0.9)

может вернуть значение 90-го процентиля для всех значений в этом столбце.

Ограничения: не поддерживается Druid, H2 (Sample Database), MariaDB, MySQL, MongoDB, SQL Server, SQLite, Vertica. Presto предоставляет только приблизительные результаты.

Share

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

Синтаксис: Share(условие)

Пример: Share([Цвет] = "Синий")

вернёт количество строк с полем Цвет, установленным в Синий, делённое на общее количество строк.

StandardDeviation

Вычисляет стандартное отклонение столбца, которое является мерой вариации в наборе значений. Низкое стандартное отклонение означает, что значения группируются вокруг среднего значения, тогда как высокое стандартное отклонение означает, что значения разбросаны в широком диапазоне.

Синтаксис: StandardDeviation(столбец)

Пример: StandardDeviation([Население])

вернёт стандартное отклонение значений в столбце «Население».

Ограничения: не поддерживается: Druid, SQLite.

Sum

Суммирует все значения столбца.

Синтаксис: Sum(столбец)

Пример: Sum([Промежуточный итог])

суммирует все значения в столбце «Промежуточный итог».

SumIf

Суммирует указанный столбец только для строк, где условие истинно.

Синтаксис: SumIf(столбец, условие).

Пример:SumIf([Промежуточный итог], [Статус заказа] = "Действительный")

суммирует все промежуточные итоги для заказов в статусе «Действительный».

Variance

Возвращает числовую дисперсию для данного столбца.

Синтаксис: Variance(столбец)

Пример: Variance([Температура])

вернёт дисперсию средней температуры для всех значений в этом столбце.

Ограничения: не поддерживается: Druid, SQLite.

Связано: standarddeviation, average.

Функции

Функции применяются к каждому отдельному значению. Их можно использовать для изменения или фильтрации значений в столбце или для создания новых пользовательских столбцов.

Логические функции

between

Проверяет значения в столбце с датами или числами, чтобы убедиться, что они находятся в пределах указанного диапазона. Возвращает true, если значение попадает в указанный диапазон, иначе false.

Синтаксис: between(столбец, начало, конец)

Пример: between([Создан], "2024-01-01", "2024-12-31")

вернёт строки, в которых дата Создан попадает в диапазон от 1 января 2024 г. до 31 декабря 2024 г.

Связано: interval.

case

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

Синтаксис: case(условие, вывод, …)

Пример: case([Вес] > 200, "Большой", [Вес] > 150, "Средний", "Низкий")

Если вес равен 250, выражение вернёт значение Большой. Значением по умолчанию является Низкий, поэтому любое значение до 150 включительно вернёт Низкий.

coalesce

Просматривает значения каждого аргумента по порядку и возвращает первое непустое значение для каждой строки.

Синтаксис: coalesce(значение1, значение2, …)

Пример: coalesce([Комментарии], [Примечания], "Нет комментариев")

Если оба столбца: Комментарии и Примечания для этой строки пусты, выражение вернёт строку "Нет комментариев".

isnull

Возвращает true, если столбец пуст.

Синтаксис: isnull(столбец)

Пример: isnull([Налог])

вернёт true, если в столбце Налог для этой строки не будет значения.

Связано: isnull, notempty.

notnull

Возвращает true, если столбец содержит значение.

Синтаксис: notnull(столбец)

Пример: notnull([Налог])

вернёт true, если в столбце Налог для этой строки задано значение.

Связано: isnull, notempty.

Математические функции

Популярные математические операции общего назначения.

abs

Возвращает абсолютное (положительное) значение указанного столбца.

Синтаксис: abs(столбец)

Пример: abs([Задолженность])

Если Задолженность была -100, abs(-100) вернёт 100.

ceil

Округляет десятичную дробь вверх.

Синтаксис: ceil(столбец).

Пример: ceil([Цена])

ceil(2.99) вернёт 3.

Связано: floor, round.

exp

Возвращает (число Эйлера (wiki)), e, возведённое в указанную степень. Число e приблизительно равно 2,71828182845904 и является основанием натурального логарифма.

Синтаксис: exp(столбец).

Пример: exp([Значение])

Ограничения: не поддерживается Druid, MongoDB, SQLite.

Связано: power.

floor

Округляет десятичное число вниз.

Синтаксис: floor(столбец)

Пример: floor([Цена])

ceil(2.99) вернёт 2.

Связано: ceil, round.

log

Возвращает десятичный логарифм числа.

Синтаксис: log(столбец).

Пример: log([Значение]).

Ограничения: не поддерживается Druid, MongoDB, SQLite.

power

Возводит число в степень, указанную в показателе степени.

Синтаксис: power(число, степень).

Пример: power([Длина], 2).

Если 'Длина = 3', вернёт 9 (3 во второй степени, 3 × 3).

Ограничения: не поддерживается Druid, MongoDB, SQLite.

Связано: exp.

round

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

Синтаксис: round(столбец).

Пример 1: round([Температура])

Если Температура = 13.5, выражение вернёт «14».

Пример 2: round([Температура] * 10) / 10

Если Температура = 100.75, выражение вернёт 100.8.

sqrt

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

Синтаксис: sqrt(столбец).

Пример: sqrt([Гипотенуза]).

Базы данных, которые не поддерживают sqrt: Druid, MongoDB, SQLite.

Связано: power.

Функции для работы со строками

Проверки и изменения строковых значений.

concat

Сцепляет две или более строки в одну.

Синтаксис: concat(строка1, строка2, …)

Пример: concat([Фамилия], ", ", [Имя])

создаст строку формата «Фамилия, Имя», например: "Иванов, Максим".

contains

Проверяет, содержит ли строка1 подстроку строка2.

Синтаксис:

  • contains(строка1, строка2) — учитывать регистр;
  • contains(строка1, строка2, "case-insensitive") — не учитывать регистр.

Пример: contains([Гриф], "Сек").

Если Гриф = "Секретно", выражение вернёт true. Если Гриф = "секретно", выражение вернёт false, потому что регистр учитывается, совпадения нет.

Связано: doesNotContain, regexextract.

doesNotContain

Проверяет, что строка1 не содержит подстроку строка2.

Синтаксис:

  • contains(строка1, строка2) — учитывать регистр;
  • contains(строка1, строка2, "case-insensitive") — не учитывать регистр.

Пример: contains([Гриф], "Сек").

Если Гриф = "Секретно", выражение вернёт false (подстрока содержится). Если Гриф = "секретно", выражение вернёт true (подстрока не содержится), потому что регистр учитывается, совпадения нет.

Связано: contains, regexextract.

domain

Извлекает имя домена из URL или email.

Синтаксис: domain(URL-или-email)

Пример: domain([URL страницы])

Если столбец URL страницы содержит https://glarus-bi.ru, функция вернёт значение glarus-bi.

Если столбец содержит support@glarus-bi.ru, функция вернёт glarus-bi.

Связано: host, subdomain.

endsWith

Возвращает true, если строка заканчивается подстрокой.

Синтаксис:

  • endsWith(строка, подстрока) — учитывать регистр;
  • endsWith(строка, подстрока, "case-insensitive") — не учитывать регистр.

Пример: endsWith([Гриф], "ретно")

Если Гриф = "Секретно", выражение вернёт true.

Связано: startswith, contains, doesNotContain.

host

Извлекает хост (домен с доменом верхнего уровня) из URL или email.

Синтаксис: host(URL-или-email)

Пример: host([Page URL])

Если столбец Page URL содержит https://glarus-bi.ru, функция вернёт значение glarus-bi.ru.

Если столбец содержит support@glarus-bi.ru, функция вернёт glarus-bi.ru.

Связано: domain, subdomain.

isempty

Возвращает true, если столбец содержит пустую строку или null. Работает только со строками. Попытка использовать с другим типом приведёт к ошибке. Для других типов подходит (isnull)[#isnull].

Синтаксис: isempty(столбец)

Пример: isempty([Отзыв])

вернёт true, если в поле Отзыв не будет значения или будет пустая строка ('').

Связано: notempty, isnull.

ltrim

Удаляет начальные пробелы из строки текста.

Синтаксис: ltrim(текст)

Пример: ltrim([Комментарий]).

Если КомментарийТребует обсуждения, ltrim вернёт Требует обсуждения (без пробелов вначале).

Связано: trim and rtrim.

length

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

Синтаксис: length(текст)

Пример: length([Комментарий])

Если КомментарийДоговорились, функция вернёт 12 (в слове "Договорились" двенадцать символов).

lower

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

Синтаксис: lower(текст).

Пример: lower([Статус]).

Если СтатусУСПЕХ, функция вернёт успех в нижнем регистре.

Связано: upper.

notempty

Возвращает true, если столбец содержит значение, которое является непустой строкой. Работает только со строками. Попытка использовать с другим типом приведёт к ошибке. Для других типов подходит (notnull)[#notnull].

Синтаксис: isempty(столбец)

Пример: isempty([Отзыв])

вернёт true, если в поле Отзыв будет какой-то текст (а не пустая строка).

Связано: isempty, isnull, notnull.

regextract

Извлекает совпадающие подстроки в соответствии с регулярным выражением.

Синтаксис: regexextract(текст, регулярное-выражение).

Пример: regexextract([Адрес], "[0-9]+").

Ограничения: не поддерживается H2 (Sample Database), MongoDB, SQL Server, SQLite. Для поддержки в Druid нужно использовать драйвер Druid-JDBC.

Связано: contains, substring.

replace

Заменяет все найденные части введённого текста новым текстом.

Синтаксис: replace(текст, найти, заменить).

Пример: replace([Характеристика], "Громадный", "Гигантский").

rtrim

Удаляет конечный пробел из строки текста.

Синтаксис: rtrim(текст)

Пример: rtrim([Комментарий]).

Если КомментарийЛучшая покупка в этом месяце, функция возвратит Лучшая покупка в этом месяце, без пробелов в конце строки.

Связано: trim и ltrim.

startsWith

Возвращает true, если строка начинается с подстроки.

Синтаксис:

  • startsWith(строка, подстрока) — учитывать регистр;
  • startsWith(строка, подстрока, "case-insensitive") — не учитывать регистр.

Пример: startsWith([Название курса], "Основы")

вернёт true для названий курсов, начинающихся с Основы, например «Основы теории надёжности».

Связано: endswith, contains.

subdomain

Извлекает поддомен из URL. Игнорирует www (возвращает пустую строку).

Синтаксис: domain(URL)

Пример: subdomain([URL страницы])

Если столбец URL страницы содержит https://example.glarus-bi.ru, функция вернёт значение example.

Связано: host, domain.

substring

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

Синтаксис: substring(текст, начальная-позиция, длина)

Пример: substring([Название], 1, 10)

возвращает первые 10 букв строки (индекс строки начинается с позиции 1).

Связано: regexextract, replace.

trim

Удаляет начальные и конечные пробелы из строки текста.

Синтаксис: trim(текст)

Пример: trim([Комментарий])

удалит любые пробелы по обе стороны комментария.

upper

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

Синтаксис: upper(текст).

Пример:

upper([Статус])

Если Статусотправлен, функция вернёт "ОТПРАВЛЕН".

Функции для работы с датами

Управление, извлечение и создание значений,содержащих дату и время.

convertTimezone

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

Синтаксис: convertTimezone(столбец, цель, источник).

Пример: convertTimezone("2024-12-28T12:00:00", "Canada/Pacific", "Canada/Eastern")

вернёт значение 2024-12-28T09:00:00, отображаемое как 28 декабря, 2024, 9:00 AM.

Ограничения: не поддерживается Amazon Athena, Databricks, Druid, H2 (Sample Database), MongoDB, Presto, SparkSQL, SQLite.

datetimeAdd

Добавляет некоторую единицу времени к значению даты или метки времени.

Синтаксис: datetimeAdd(столбец, значение, единица).

Пример: datetimeAdd("2025-03-25", 1, "month")

вернёт значение 2025-04-25, отображаемое как 25 апреля 2025 года.

Связано: between, datetimeSubtract.

datetimeDiff

Возвращает разницу между двумя значениями даты и времени в заданных единицах времени. Например, datetimeDiff(d1, d2, "day") вернёт количество дней между d1 и d2.

Синтаксис: datetimeDiff(дата-время1, дата-время2, единица).

Пример: datetimeDiff("2025-02-01", "2025-03-01", "month")

вернёт 1.

Ограничения: не поддерживается Druid.

datetimeSubtract

Вычитает некоторую единицу времени из значения даты или метки времени.

Синтаксис: datetimeSubtract(столбец, значение, единица).

Значение должно быть целым числом, не числом с плавающей точкой. Вы не можете вычесть "полгода" (0.5).

Пример: datetimeSubtract("2025-03-25", 1, "month")

вернёт значение 2025-02-25, отображаемое как 25 февраля 2025 года.

Связано: between, datetimeadd.

day

Принимает дату и время и возвращает день месяца в виде целого числа.

Синтаксис: day([столбец-с-датой-и-временем]).

Пример: day("2025-03-25T12:52:37")

вернёт день как целое число 25.

dayName

Возвращает название дня недели в вашей локализации в ответ на переданный номер дня. Учитывает настройку первого дня недели.

Синтаксис: dayName(номер-дня).

Пример: dayName(1)

вернёт Понедельник, при условии что в системе задана настройка, начинающая неделю с понедельника.

Связано: quarterName, monthName.

hour

Принимает дату и время и возвращает час в виде целого числа (0–23).

Синтаксис: hour([столбец-с-датой-и-временем]).

Пример: hour("2025-03-25T12:52:37") вернёт 12.

interval

Проверяет значения столбца даты, чтобы определить, попадают ли они в относительный диапазон.

Синтаксис: interval(столбец, число, текст).

Число должно быть целым, числа с плавающей точкой недопустимы.

Пример: interval([Created At], -1, "month").

Связано: between.

minute

Принимает дату и время и возвращает минуты в виде целого числа (0–59).

Синтаксис: minute([столбец-с-датой-и-временем]).

Пример: minute("2025-03-25T12:52:37") вернёт 52.

month

Принимает дату и время и возвращает номер месяца (1–12) в виде целого числа.

Синтаксис: month([столбец-с-датой-и-временем]).

Пример: month("2025-03-25T12:52:37") вернёт месяц как целое число, 3.

monthName

Возвращает сокращённое название месяца в вашей локализации в ответ на переданный номер месяца.

Синтаксис: monthName(номер-месяца).

Пример: monthName(10)

вернёт Окт (октябрь).

Связано: dayName, quarterName.

now

Возвращает текущую дату и время с использованием часового пояса отчёта Glarus BI.

Синтаксис: now.

quarter

Принимает дату и время и возвращает номер квартала в году (1–4) в виде целого числа.

Синтаксис: quarter([столбец-с-датой-и-временем]).

Пример: quarter("2025-03-25T12:52:37") вернёт 1 (первый квартал).

quarterName

Принимает номер квартала (1–4), возвращает строку названия квартала, например, 'Q1'.

Синтаксис: quarterName(номер-квартала).

Пример: quarterName(3)

вернёт Q3 (третий квартал).

Связано: dayName, monthName.

relativeDateTime

Получает значение даты и времени относительно текущего времени.

Синтаксис: relativeDateTime(значение, единица)

  • значение — смещение интервала, целое число (числа с плавающей точкой недопустимы), отрицательное значение возвращает в прошлое;
  • единица — тип интервала: "day" (день), "month" (месяц), "year" (год).

relativeDateTime может использоваться только как часть условного выражения.

Пример: [Заказы → Создан] < relativeDateTime(-30, "day")

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

Связано: datetimeAdd, datetimeSubtract.

second

Принимает дату и время и возвращает число секунд зафиксированной минуты (0–59) в виде целого числа.

Синтаксис: second([столбец-с-датой-и-временем]).

Пример: second("2025-03-25T12:52:10")

вернёт целое число 10.

timeSpan

Возвращает требуемый интервал заданной длительности для операций с датой и временем.

Синтаксис: timeSpan(значение, единица)

  • значение — длительность интервала, целое число (числа с плавающей точкой недопустимы), отрицательное значение возвращает в прошлое;
  • единица — тип интервала: "day" (день), "month" (месяц), "year" (год).

Пример: [Заказы → Создан] + timeSpan(7, "day")

вернёт дату на 7 дней позже даты создания заказа.

week

Принимает дату и время и возвращает номер недели в виде целого числа.

Синтаксис: week(столбец, режим).

Пример: week("2025-03-25T12:52:37")

вернёт номер недели в виде целого числа, 12.

  • столбец — название столбца, где хранятся значения с датой или датой и временем;
  • режим — необязательный параметр, возможны значения:
  • ISO (по умолчанию) — первая неделя начинается в понедельник перед первым четвергом января;
  • US — первая неделя начинается первого января. Все остальные недели начинаются в воскресенье.
  • Instance — первая неделя начинается первого января. Все остальные недели начинаются в день, указанный в настройках локализации вашей Glarus BI.

weekday

Принимает дату и время и возвращает номер дня недели в виде целого числа (1–7).

Синтаксис: weekday([столбец-c-датой-и-временем])

Пример:

case(
  weekday([Created At]) = 1, "Понедельник",
  weekday([Created At]) = 2, "Вторник",
  weekday([Created At]) = 3, "Среда",
  weekday([Created At]) = 4, "Четверг",
  weekday([Created At]) = 5, "Пятница",
  weekday([Created At]) = 6, "Суббота",
  weekday([Created At]) = 7, "Воскресенье")

year

Принимает дату и время и возвращает год как целое число.

Синтаксис: year([столбец-с-датой-и-временем]).

Пример: year("2025-03-25T12:52:37")

вернёт 2025 год как целое число, 2,025 (здесь запятая — как разделитель разрядов целого числа).

Оконные функции

Оконные функции могут быть использованы только в блоке "Суммировать" (где происходит группировка). Они не могут быть использованы для создания пользовательского столбца или пользовательского фильтра.

CumulativeCount

Счёт строк в диапазоне с накоплением.

Синтаксис: CumulativeCount.

Пример: CumulativeCount.

CumulativeSum

Сумма в столбце с накоплением.

Синтаксис: CumulativeSum(столбец).

Пример: CumulativeSum([Промежуточный итог]).

Связано: sum и sumif.

Offset

Возвращает значение выражения, применённого к другой строке, с заданным смещением. Offset может быть использована только в конструкторе запросов в блоке "Суммировать" и не может быть использована для создания пользовательского столбца.

Синтаксис: Offset(выражение, смещение-относительно-строки)

  • выражение применяется не к текущей, а к другой строке;
  • смещение-относительно-строки — целое положительное или отрицательное число, которое указывает, на сколько строк нужно сместиться относительно текущей, например:
  • -1 — предыдущая строка;
  • 1 — следующая строка.

Пример: Offset(Sum([Итого]), -1)

получит значение Sum([Итого]) предыдущей строки.

Ограничения: не поддерживается Druid, MongoDB, MySQL/MariaDB.

Ограничения СУБД

Выше уже были перечислены ограничения для каждой функции. Здесь представлена сводка по СУБД:

H2 (включая Sample Database): Median, Percentile, convertTimezone и regextract.

Amazon Athena: convertTimezone.

Databricks: convertTimezone.

Druid: Median, Percentile, StandardDeviation, power, log, sqrt, datetimeDiff Offset. Функция regextract доступна только для драйвера Druid-JDBC.

MongoDB: Median, Percentile, power, log, exp, sqrt, Offset, regexextract, convertTimezone.

MariaDB: Median, Percentile, Offset.

MySQL: Median, Percentile, Offset.

Presto: convertTimezone. Приблизительные, неточные результаты для Median и Percentile.

Redshift: Average возвращает целые значения только для столбцов целочисленного типа.

SparkSQL: convertTimezone.

SQL Server: Median, Percentile и regexextract.

SQLite: convertTimezone, exp, log, Median, Percentile, power, regexextract, StandardDeviation, sqrt и Variance.

Vertica: Median, Percentile.

Дополнительная информация