title: List of expressions redirect_from:
/docs/latest/users-guide/expressions-list
Список выражений¶
Для ознакомления с выражениями ознакомьтесь с [обзором пользовательских выражений][expressions].
Функции
Агрегации¶
Агрегационные выражения учитывают все значения в поле. Их можно использовать только в разделе Суммировать конструктора запросов.
Среднее¶
Возвращает среднее значение значений в столбце.
Синтаксис: Average(column)
Пример: Average([Количество])
вернет среднее значение для поля Количество
.
Счет¶
Возвращает количество строк (также известных как записи) в выбранных данных.
Синтаксис: Count
Пример: Count
Если таблица или результат возвращает 10 строк, Count
вернет 10
.
Счет если¶
Учитываются только те строки, где условие истинно.
Синтаксис: CountIf(condition)
.
Пример: CountIf([Промежуточный итог] > 100)
вернет количество строк, где промежуточный итог больше 100.
Суммарное количество строк¶
Суммарное количество строк в разрезе.
Синтаксис: CumulativeCount
.
Пример: CumulativeCount
.
Сумма накопительно¶
Скользящая сумма столбца по признаку.
Синтаксис: CumulativeSum(column)
.
Пример: CumulativeSum([Промежуточный итог])
.
Связано: Сумма и Сумма если.
Различия¶
Количество различных значений в этом столбце.
Синтаксис: Distinct(column)
.
Distinct([Фамилия])
. Возвращает количество уникальных фамилий в столбце. Дубликаты (фамилии “Иванов” для примера) не учитываются.
Максимум¶
Возвращает наибольшее значение, найденное в столбце.
Синтаксис: Max(column)
.
Пример: Max([Возраст])
вернет самый большой возраст, найденный среди всех значений в столбце Возраст
.
Медиана¶
Возвращает медианное значение указанного столбца.
Синтаксис: Median(column)
.
Пример: Median([Возраст])
найдет средний возраст, где половина возрастов старше, а половина возрастов моложе.
Базы данных, которые не поддерживают median
: SQLite, Vertica, SQL server, MySQL. Presto предоставляет только приблизительные результаты.
Минимум¶
Возвращает наименьшее значение, найденное в столбце.
Синтаксис: Min(column)
.
Пример: Min([Зарплата])
найдет самую низкую зарплату среди всех зарплат в столбце «Зарплата».
Процентиль¶
Возвращает значение столбца в процентильном значении.
Синтаксис: Percentile(column, percentile-value)
Пример: Percentile([Счет], 0.9)
вернет значение в 90-м процентиле для всех значений в этом столбце.
Базы данных, которые не поддерживают процентиль
: H2, MySQL, SQL Server, SQLite, Vertica. Presto предоставляет только приблизительные результаты.
Доля¶
Возвращает процент строк в данных, соответствующих условию, в виде десятичной дроби.
Синтаксис: Share(condition)
Пример: Share([Цвет] = "Синий")
вернет количество строк, в поле «Цвет» которых установлено значение «Синий», деленное на общее количество строк.
Стандартное отклонение¶
Вычисляет стандартное отклонение столбца, которое является мерой вариации в наборе значений. Низкое стандартное отклонение указывает на то, что значения группируются вокруг среднего, тогда как высокое стандартное отклонение означает, что значения распределены в широком диапазоне.
Синтаксис: StandardDeviation(column)
Пример: StandardDeviation([Население])
вернет стандартное отклонение для значений в столбце «Население».
Сумма¶
Складывает все значения столбца.
Синтаксис: Sum(column)
Пример: Sum([Промежуточный итог])
будут суммированы все значения в столбце «Промежуточный итог».
Сумма если¶
Суммирует указанный столбец только для тех строк, где условие истинно.
Синтаксис: SumIf(column, condition)
.
Пример:SumIf([Промежуточный итог], [Статус заказа] = "действующий")
будут суммированы все промежуточные итоги для заказов со статусом «Действительный».
Дисперсия¶
Возвращает числовую дисперсию для заданного столбца.
Синтаксис: Variance(column)
Пример: Variance([Температура])
вернет меру дисперсии от средней температуры для всех температур в этом столбце.
Связано: Стандартное отклонение, Average.
Функции¶
Выражения функций применяются к каждому отдельному значению. Их можно использовать для изменения или фильтрации значений в столбце или создания новых пользовательских столбцов.
Логические функции¶
Логические функции определяют, выполняется ли условие, или определяют, какое значение следует вернуть на основе условия.
между¶
Проверяет значения столбца даты или числа, чтобы увидеть, находятся ли они в указанном диапазоне.
Синтаксис: between(column, start, end)
Пример: between([Создано], "2019-01-01", "2020-12-31")
вернет строки, в которых дата «Создано» попадает в диапазон от 1 января 2019 г. до 31 декабря 2020 г.
Связано: интервал.
кейс¶
Проверяет выражение по списку случаев и возвращает соответствующее значение первого совпадающего случая с необязательным значением по умолчанию, если ничего другого не выполнено.
Синтаксис: case(condition, output, …)
Пример: case([Вес] > 200, "большой", [Вес] > 150, "Средний", "Маленький")
Если Вес
равен 250, выражение вернет “Large”. В этом случае значение по умолчанию - “Small”, поэтому любой Вес
150 или меньше вернет “Small”.
объединение¶
Просматривает значения в каждом аргументе по порядку и возвращает первое ненулевое значение для каждой строки.
Синтаксис: coalesce(value1, value2, …)
Пример: coalesce([Комментарии], [Примечания], "нет комментариев")
. Если оба столбца Комментарии
и Примечания
для этой строки равны NULL, выражение вернет строку «Нет комментариев».
равен нулю¶
Возвращает true, если столбец равен нулю.
Синтаксис: isnull(column)
Пример: isnull([Налог])
вернет значение true, если в столбце для этой строки нет значений.
не равно нулю¶
Возвращает true, если столбец содержит значение.
Синтаксис: notnull(column)
Пример: notnull([Налог])
вернет значение true, если в столбце для этой строки присутствует значение.
Связано: равно нулю, не пусто
Математические функции¶
Математические функции реализуют общие математические операции.
абсолют¶
Возвращает абсолютное (положительное) значение указанного столбца.
Синтаксис: abs(column)
Пример: abs([долг])
. Если бы Долг
был равен -100, abs(-100)
вернул бы 100
.
округление вверх¶
Округляет десятичную дробь в большую сторону.
Синтаксис: ceil(column)
.
Пример: ceil([Цена])
. ceil(2.99)
вернет.
Связано: округление вниз, округление.
exp¶
Возвращает число Эйлера, е, возведенное в степень указанного числа.
Синтаксис: exp(column)
.
Пример: exp([Месяцы процентов])
Связано: степень.
округление вниз¶
Округляет десятичное число в меньшую сторону.
Синтаксис: floor(column)
Пример: floor([Цена])
. Если бы «Цена» была 1,99, выражение вернуло бы 1.
Связано: округление вверз, округление.
логарифм¶
Возвращает десятичный логарифм числа.
Синтаксис: log(column)
.
Пример: log([Значение])
.
степень¶
Возводит число в степень, указанную в показателе степени.
Синтаксис: power(column, exponent)
.
Пример: power([длина], 2)
. Если бы длина была равна 3
, выражение вернуло бы 9
(3 во второй степени равно 3*3).
Базы данных, не поддерживающие power
: SQLite.
Связано: exp.
округление¶
Округляет десятичное число в большую или меньшую сторону до ближайшего целого значения.
Синтаксис: round(column)
.
Пример: round([температура])
.Если бы температура была «13,5» градусов по Цельсию, выражение вернуло бы «14».
Пример: round([Температура] * 10) / 10
. Если бы температура была равна «100,75», выражение вернуло бы «100,8».
квадратный корень¶
Возвращает квадратный корень значения.
Синтаксис: sqrt(column)
.
Пример: sqrt([Гипотенуза])
.
Базы данных, не поддерживающие sqrt
: SQLite.
Связано: степень.
Строковые функции¶
Строковые функции обрабатывают или проверяют строковые данные.
соединить¶
Объедините две или более строк вместе.
Синтаксис: concat(value1, value2, …)
Пример: concat([фамилия], ", ", [имя])
выведет строку в формате «Фамилия, Имя», например «Иванов, Иван».
содержит¶
Проверяет, содержит ли string1
string2
внутри себя.
По умолчанию выполняет сопоставление с учетом регистра.
Можно передать необязательный параметр "case-insensitive"
для сопоставления без учета регистра.
Синтаксис: contains(string1, string2)
для сопоставления с учетом регистра.
contains(string1, string2, "case-insensitive")
для поиска совпадений без учета регистра.
Пример: contains([Статус], "Classified")
.
Если бы Status
был “Classified”, выражение вернуло бы true
. Если бы Status
был “classified”, выражение вернуло бы false
, поскольку регистр не совпадает.
Связано: не содержит, извлечение регулярного выражения.
не содержит¶
Проверяет, содержит ли string1
string2
внутри себя.
По умолчанию выполняет сопоставление с учетом регистра.
Можно передать необязательный параметр "case-insensitive"
для сопоставления без учета регистра.
Синтаксис: doesNotContain(string1, string2)
для сопоставления с учетом регистра.
doesNotContain(string1, string2, "case-insensitive")
для сопоставления без учета регистра.
Пример: doesNotContain([Статус], "Classified")
. Если бы Статус
был “Classified”, выражение вернуло бы false
.
Связано: содержит, извлечение регулярного выражения.
оканчивается на¶
Возвращает true, если конец текста совпадает с текстом сравнения.
По умолчанию выполняет сопоставление с учетом регистра.
Можно передать необязательный параметр "case-insensitive"
, чтобы выполнить сопоставление без учета регистра.
Синтаксис: endsWith(text, comparison)
для сопоставления с учетом регистра.
endsWith(text, comparison, "case-insensitive")
для сопоставления без учета регистра.
Пример: endsWith([Аппетит], "голоден")
Связано: начинается с , содержит, не содержит.
пусто¶
Возвращает true, если строковый столбец содержит пустую строку или является пустым. Вызов этой функции для нестрокового столбца приведет к ошибке. Вы можете использовать равно нулю для нестроковых столбцов.
Синтаксис: isempty(column)
Пример: isempty([Обратная связь])
вернет true, если Обратная связь
был пустой строкой (''
) или не содержал значения.
Связано: не пусто, равно нулю
подрезать сначала¶
Удаляет начальные пробелы из строки текста.
Синтаксис: ltrim(text)
Пример: ltrim([Комментарий])
. Если бы комментарий был " Я бы предпочел не делать этого"
, ltrim
вернул бы "Я бы предпочел не делать этого"
.
Связано: подрезать and подрезать в конце.
длина¶
Возвращает количество символов в тексте.
Синтаксис: length(text)
Пример: length([Комментарий])
. Если бы комментарий
был “wizard”, length
вернул бы 6 (”wizard” имеет шесть символов).
строчные¶
Возвращает строку текста в нижнем регистре.
Синтаксис: lower(text)
.
Пример: lower([Статус])
. Если бы Статус
был “QUIET”, выражение вернуло бы “quiet”.
Связано: прописные.
не пусто¶
Возвращает true, если строковый столбец содержит значение, которое не является пустой строкой. Вызов этой функции для нестрокового столбца приведет к ошибке. Вы можете использовать не равно нулю для нестроковых столбцов.
Синтаксис: notempty(column)
Пример: notempty([Обратная связь])
вернет true, если Обратная связь
содержит значение, которое не является пустой строкой (''
).
Связано: пусто, равно нулю, не равно нулю
извлечение регулярного выражения¶
Извлекает совпадающие подстроки в соответствии с регулярным выражением.
Синтаксис: regexextract(text, regular_expression)
.
Пример: regexextract([Адрес], "[0-9]+")
.
Базы данных, не поддерживающие regexextract
: H2, SQL Server, SQLite.
Связано: содержит, не содержит, подстрока.
заменить¶
Заменяет все нахождения искомого текста во входном тексте на замещающий текст.
Синтаксис: replace(text, find, replace)
.
Пример: replace([Title], "Enormous", "Gigantic")
.
вырезать пробелы с конца¶
Удаляет пробелы в конце из строки текста.
Синтаксис: rtrim(text)
Пример: rtrim([Комментарий])
. Если бы комментарий был “Страх - убийца разума. “, выражение вернуло бы “Страх - убийца разума”.
Связано: вырезка и убрать пробелы спереди.
начинается с¶
Возвращает true, если начало текста совпадает с текстом сравнения. По умолчанию выполняет сопоставление с учетом регистра.
Вы можете передать необязательный параметр "case-insensitive"
, чтобы выполнить сопоставление без учета регистра.
Синтаксис: startsWith(text, comparison)
для поиска с учетом регистра.
startsWith(text, comparison, "case-insensitive")
для поиска с учетом регистра.
Пример: startsWith([Название курса], "Компьютерные науки")
вернет значение true для названий курсов, начинающихся с «Компьютерные науки», например «Компьютерные науки 101: Введение».
Для «Компьютерные науки 201: Структуры данных» будет возвращено значение false, поскольку регистр слова «науки» не соответствует регистру в тексте сравнения.
startsWith([Название курса], "Компьютерные науки", "case-insensitive")
вернет значение true как для «Компьютерные науки 101: Введение», так и для «Компьютерные науки 201: Структуры данных».
Связано: оканчиавется с, содержит, не содержит.
подстрока¶
Возвращает часть предоставленного текста, указанную начальной позицией и длиной.
Синтаксис: substring(text, position, length)
Пример: substring([Заголовок], 1, 10)
возвращает первые 10 букв строки (индекс строки начинается с позиции 1).
Связано: извлечение регулярного выражения, заменить.
вырезка пробелов¶
Удаляет начальные и конечные пробелы из строки текста.
Синтаксис: trim(text)
Пример: trim([Комментарий])
удалит все пробельные символы по обе стороны комментария.
прописные¶
Возвращает текст в верхнем регистре.
Синтаксис: upper(text)
.
Пример: upper([Статус])
. Если бы статус был «hyper», upper("hyper")
вернул бы «HYPER».
Функции даты¶
Функции даты манипулируют, извлекают или создают значения даты и времени.
конвертация часового пояса¶
Смещает значение даты или временной метки в указанный часовой пояс.
Синтаксис: convertTimezone(column, target, source)
.
Пример: convertTimezone("2022-12-28T12:00:00", "Canada/Pacific", "Canada/Eastern")
вернет значение 2022-12-28T09:00:00
, отображаемое как 28 декабря 2022 г., 9:00 AM
.
См. ограничения баз данных для convertTimezone
.
добавить дату и время¶
Добавляет единицу времени к значению даты или временной метки.
Синтаксис: datetimeAdd(column, amount, unit)
.
Пример: datetimeAdd("2021-03-25", 1, "month")
вернет значение 2021-04-25
, отображаемое как 25 апреля 2021 года
.
Связано: между, дата время вычесть.
дата время разница¶
Возвращает разницу между двумя датами в некоторой единице времени. Например, datetimeDiff(d1, d2, "day")
вернет количество дней между d1
и d2
.
Синтаксис: datetimeDiff(datetime1, datetime2, unit)
.
Пример: datetimeDiff("2022-02-01", "2022-03-01", "month")
вернет 1
.
дата время вычесть¶
Вычитает некоторую единицу времени из значения даты или временной метки.
Синтаксис: datetimeSubtract(column, amount, unit)
.
Пример: datetimeSubtract("2021-03-25", 1, "month")
вернет значение 2021-02-25
, отображаемое как 25 февраля 2021 года
.
Связано: между, дата время добавить.
день¶
Принимает дату и время и возвращает день месяца в виде целого числа.
Синтаксис: day([datetime column])
.
Пример: day("2021-03-25T12:52:37")
вернет день как целое число, 25
.
час¶
Принимает дату и время и возвращает час как целое число (0-23).
Синтаксис: hour([datetime column])
.
Пример: hour("2021-03-25T12:52:37")
вернет 12
.
интервал¶
Проверяет значения столбца даты, чтобы увидеть, находятся ли они в пределах относительного диапазона.
Синтаксис: interval(column, number, text)
.
Пример: interval([Created At], -1, "month")
.
Связано: между.
минута¶
Принимает дату и время и возвращает минуты в виде целого числа (0-59).
Синтаксис: minute([datetime column])
.
Пример: minute("2021-03-25T12:52:37")
вернет 52
.
месяц¶
Принимает дату и время и возвращает номер месяца (1-12) в виде целого числа.
Синтаксис: month([datetime column])
.
Пример: month("2021-03-25T12:52:37")
вернет месяц как целое число, 3
.
сейчас¶
Возвращает текущую дату и время, используя в вашей Glarus BI часовой пояс отчета.
Синтаксис: now
.
квартал¶
Принимает дату и время и возвращает номер квартала в году (1-4) в виде целого числа.
Синтаксис: quarter([datetime column])
.
Пример: quarter("2021-03-25T12:52:37")
вернет 1
для первого квартала.
относительная дата время¶
Получает временную метку относительно текущего времени.
Синтаксис: relativeDateTime(number, text)
number
: Период интервала, где отрицательные значения находятся в прошлом.
text
: Тип интервала как "day"
, "month"
, "year"
relativeDateTime
может использоваться только как часть условного выражения.
Пример: [Orders → Created At] < relativeDateTime(-30, "day")
будет отфильтрован по заказам, созданным более 30 дней назад от текущей даты.
Связано: дата время добавить, дата время вычесть.
секунда¶
Принимает дату и время и возвращает количество секунд в минуте (0-59) в виде целого числа.
Синтаксис: second([datetime column])
.
Пример: second("2021-03-25T12:52:37")
вернет целое число 37
.
промежуток времени¶
Получает интервал времени указанной длины.
Синтаксис: timeSpan(number, text)
.
number
: Период интервала, где отрицательные значения находятся в прошлом.
text
: Тип интервала как "day"
, "month"
, "year"
Пример: [Заказы → Создано] + timeSpan(7, "day")
вернет дату через 7 дней после даты «Создано».
неделя¶
Принимает дату и время и возвращает неделю как целое число.
Синтаксис: week(column, mode)
.
Пример: week("2021-03-25T12:52:37")
вернет неделю как целое число, 12
.
column: имя столбца значения даты или даты и времени.
mode: необязательно.
ISO: (по умолчанию) Неделя 1 начинается в понедельник перед первым четвергом января.
US: Неделя 1 начинается 1 января. Все остальные недели начинаются в воскресенье.
Instance: Неделя 1 начинается 1 января. Все остальные недели начинаются в день, определенный в настройках локализации Glarus BI.
день недели¶
Принимает дата и время, и возвращает целое число (1-7) с номером дня недели.
Синтаксис: weekday(column)
column: Столбец даты и времени.
Пример:
case(
weekday([Создано]) = 1, "Sunday",
weekday([Создано]) = 2, "Monday",
weekday([Создано]) = 3, "Tuesday",
weekday([Создано]) = 4, "Wednesday",
weekday([Создано]) = 5, "Thursday",
weekday([Создано]) = 6, "Friday",
weekday([Создано]) = 7, "Saturday")
год¶
Принимает дату и время и возвращает год как целое число.
Синтаксис: year([datetime column])
.
Пример: year("2021-03-25T12:52:37")
вернет год 2021 как целое число, 2,021
.
Ограничения¶
Выражения агрегации можно использовать только в разделе Суммировать конструктора запросов.
Функции, возвращающие логическое значение, например пусто и содержит, нельзя использовать для создания пользовательского столбца. Чтобы создать пользовательский столбец на основе одной из этих функций, необходимо объединить их с другой функцией, например
case
.
Например, чтобы создать новый пользовательский столбец, содержащий true
, если [Заголовок]
содержит 'Бумажник'
, можно использовать пользовательское выражение
case(contains([Заголовок], 'Бумажник'), true, false)
Ограничения базы данных¶
Ограничения указаны для каждой агрегации и функции выше, и вот они вкратце:
H2 (включая Glarus BI Sample Database): Median
, Percentile
, convertTimezone
и regexextract
MySQL/MariaDB: Median
, Percentile
.
SQL Server: Median
, Percentile
и regexextract
SQLite: log
, Median
, Percentile
, power
, regexextract
, StandardDeviation
, sqrt
и Variance
Vertica: Median
и Percentile
Кроме того, Presto предоставляет только приблизительные результаты для Медианы
и Процентиля
.
Если вы используете или поддерживаете сторонний драйвер базы данных, пожалуйста, см. вики to see how your driver might be impacted.