Список выражений¶
Для получения основ работы с выражениями ознакомьтесь со статьёй Написание выражений в редакторе.
Некоторые подзаголовки здесь содержат ссылки. Перейдя по ним, вы можете получить дополнительную информацию о выражении или группе выражений.
Агрегации¶
Выражения агрегации учитывают все значения в поле. Их можно использовать только в блоке Суммировать конструктора запросов.
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¶
Возвращает наименьшее значение, найденное в столбце.
Синтаксис: 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, если в столбце Налог
для этой строки не будет значения.
notnull¶
Возвращает true, если столбец содержит значение.
Синтаксис: notnull(столбец)
Пример: notnull([Налог])
вернёт true, если в столбце Налог
для этой строки задано значение.
Математические функции¶
Популярные математические операции общего назначения.
abs¶
Возвращает абсолютное (положительное) значение указанного столбца.
Синтаксис: abs(столбец)
Пример: abs([Задолженность])
Если Задолженность
была -100, abs(-100)
вернёт 100
.
ceil¶
Округляет десятичную дробь вверх.
Синтаксис: ceil(столбец)
.
Пример: ceil([Цена])
ceil(2.99)
вернёт 3.
exp¶
Возвращает (число Эйлера (wiki)), e, возведённое в указанную степень. Число e приблизительно равно 2,71828182845904 и является основанием натурального логарифма.
Синтаксис: exp(столбец)
.
Пример: exp([Значение])
Ограничения: не поддерживается Druid, MongoDB, SQLite.
Связано: power.
floor¶
Округляет десятичное число вниз.
Синтаксис: floor(столбец)
Пример: floor([Цена])
ceil(2.99)
вернёт 2.
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
.
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
.
isempty¶
Возвращает true, если столбец содержит пустую строку или null. Работает только со строками. Попытка использовать с другим типом приведёт к ошибке. Для других типов подходит (isnull)[#isnull].
Синтаксис: isempty(столбец)
Пример: isempty([Отзыв])
вернёт true, если в поле Отзыв
не будет значения или будет пустая строка (''
).
ltrim¶
Удаляет начальные пробелы из строки текста.
Синтаксис: ltrim(текст)
Пример: ltrim([Комментарий])
.
Если Комментарий
— Требует обсуждения
, ltrim
вернёт Требует обсуждения
(без пробелов вначале).
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.
replace¶
Заменяет все найденные части введённого текста новым текстом.
Синтаксис: replace(текст, найти, заменить)
.
Пример: replace([Характеристика], "Громадный", "Гигантский")
.
rtrim¶
Удаляет конечный пробел из строки текста.
Синтаксис: rtrim(текст)
Пример: rtrim([Комментарий])
.
Если Комментарий
— Лучшая покупка в этом месяце
, функция возвратит Лучшая покупка в этом месяце
, без пробелов в конце строки.
startsWith¶
Возвращает true, если строка начинается с подстроки.
Синтаксис:
startsWith(строка, подстрока)
— учитывать регистр;startsWith(строка, подстрока, "case-insensitive")
— не учитывать регистр.
Пример: startsWith([Название курса], "Основы")
вернёт true для названий курсов, начинающихся с Основы
, например «Основы теории надёжности».
subdomain¶
Извлекает поддомен из URL. Игнорирует www
(возвращает пустую строку).
Синтаксис: domain(URL)
Пример: subdomain([URL страницы])
Если столбец URL страницы
содержит https://example.glarus-bi.ru
, функция вернёт значение example
.
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
(третий квартал).
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([Промежуточный итог])
.
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
.