Список выражений¶
Для получения основ работы с выражениями ознакомьтесь со статьёй Написание выражений в редакторе.
Некоторые подзаголовки здесь содержат ссылки. Перейдя по ним, вы можете получить дополнительную информацию о выражении или группе выражений.
Агрегации¶
Выражения агрегации учитывают все значения в поле. Их можно использовать только в блоке Суммировать конструктора запросов.
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.