# Список выражений Для ознакомления с выражениями ознакомьтесь со статьей [Написание выражений в редакторе][expressions]. - [aggregations](#aggregations) - [CountIf](./expressions/countif.md) - [CumulativeCount](#cumulativecount) - [CumulativeSum](#cumulativesum) - [Distinct](#distinct) - [Max](#max) - [Median](#median) - [Min](#min) - [Percentile](#percentile) - [Share](#share) - [Standarddeviation](#standarddeviation) - [Sum](#sum) - [SumIf](./expressions/sumif.md) - [Variance](#variance) - [Functions](#functions) - [Abs](#abs) - [Between](#between) - [Case](./expressions/case.md) - [Ceil](#ceil) - [Coalesce](./expressions/coalesce.md) - [Concat](./expressions/concat.md) - [Contains](#contains) - [converttimezone](./expressions/converttimezone.md) - [datetimeadd](./expressions/datetimeadd.md) - [datetimediff](./expressions/datetimediff.md) - [datetimesubtract](./expressions/datetimesubtract.md) - [Day](#day) - [endswith](#endswith) - [exp](#exp) - [floor](#floor) - [Hour](#hour) - [Interval](#interval) - [Isempty](./expressions/isempty.md) - [Isnull](./expressions/isnull.md) - [lefttrim](#lefttrim) - [length](#length) - [log](#log) - [lower](#lower) - [minute](#minute) - [month](#month) - [now](./expressions/now.md) - [power](#power) - [quarter](#quarter) - [regexextract](./expressions/regexextract.md) - [replace](#replace) - [righttrim](#righttrim) - [round](#round) - [second](#second) - [sqrt](#sqrt) - [startswith](#startswith) - [substring](./expressions/substring.md) - [trim](#trim) - [upper](#upper) - [week](#week) - [year](#year) - [Ограничения базы данных](#database-limitations) ## aggregations Выражения агрегации учитывают все значения в поле. Их можно использовать только в разделе **Сводка** редактора блокнота. ### Average Возвращает среднее значение значений в столбце. Синтаксис: `Average(column)` Пример: `Average([Quantity])` возвращает среднее значение для поля `Quantity`. ### Count Возвращает количество строк (также называемых записями) в выбранных данных. Синтаксис: `Count` Пример: `Count` Если таблица или результат возвращает 10 строк, `Count` вернет `10`. ### [CountIf](./expressions/countif.md) Подсчитываются только строки, где условие истинно. Синтаксис: `CountIf(condition)`. Пример: `CountIf([Subtotal] > 100)` вернет количество строк, в которых промежуточный итог превышает 100. ### CumulativeCount Аддитивное общее количество строк в диапазоне. Синтаксис: `CumulativeCount`. Пример: `CumulativeCount`. ### CumulativeSum Скользаящая сумма колонки в диапазоне. Синтаксис: `CumulativeSum(column)`. Пример: `CumulativeSum([Subtotal])`. Связано: [sum](#sum) и [sumif](#sumif). ### Distinct Количество различных значений в этом столбце. Синтаксис: `Distinct(column)`. `Distinct([Last Name])`. Возвращает количество уникальных фамилий в столбце. Дубликаты (фамилии «Смит» для Примера) не учитываются. ### Max Возвращает наибольшее значение, найденное в столбце. Синтаксис: `Max(column)`. Пример: `Max([Age])` вернет самый старый возраст, найденный среди всех значений в столбце `Возраст`. Связано: [min](#min), [average](#average), [median](#median). ### Median Возвращает медианное значение указанного столбца. Синтаксис: `Median(column)`. Пример: `Median([Age])` найдет срединный возраст, при котором половина возрастов старше, а половина возрастов моложе. Базы данных, не поддерживающие медиану: SQLite, Vertica, SQL server, MySQL. Presto предоставляет только приблизительные результаты. Связано: [min](#min), [max](#max), [average](#average). ### Min Возвращает наименьшее значение, найденное в столбце. Синтаксис: `Min(column)`. Пример: `Min([Salary])` найдет самую низкую зарплату среди всех зарплат в столбце «Зарплата». Связано: [max](#max), [median](#median), [average](#average). ### Percentile Возвращает значение столбца в процентиле. Синтаксис: `Percentile(column, percentile-value)` Пример: `Percentile([Score], 0.9)` может вернуть значение 90-го процентиля для всех значений в этом столбце. Базы данных, которые не поддерживают `percentile`: H2, MySQL, SQL Server, SQLite, Vertica. Presto предоставляет только приблизительные результаты. ### Share Возвращает процент строк в данных, соответствующих условию, в виде десятичного числа. Синтаксис: `Share(condition)` Пример: `Share([Color] = "Blue")` вернет количество строк с полем «Цвет», установленным на «Синий», деленное на общее количество строк. ### StandardDeviation Вычисляет стандартное отклонение столбца, которое является мерой вариации в наборе значений. Низкое стандартное отклонение означает, что значения группируются вокруг среднего значения, тогда как высокое стандартное отклонение означает, что значения разбросаны по широкому диапазону. Синтаксис: `StandardDeviation(column)` Пример: `StandardDeviation([Population])` вернет SD для значений в столбце «Население». ### Sum Суммирует все значения столбца. Синтаксис: `Sum(column)` Пример: `Sum([Subtotal])` суммирует все значения в столбце «Промежуточный итог». ### [SumIf](./expressions/sumif.md) Суммирует указанный столбец только для строк, где условие истинно. Синтаксис: `SumIf(column, condition)`. Пример:`SumIf([Subtotal], [Order Status] = "Valid")` суммирует все промежуточные итоги для заказов со статусом «Действительный». ### Variance Возвращает числовую дисперсию для данного столбца. Синтаксис: `Variance(column)` Пример: `Variance([Temperature])` вернет меру дисперсии средней температуры для всех времен в этом столбце. Связано: [standarddeviation](#standarddeviation), [average](#average). ## Functions Функциональные выражения применяются к каждому отдельному значению. Их можно использовать для изменения или фильтрации значений в столбце или для создания новых настраиваемых столбцов. ### Abs Возвращает абсолютное (положительное) значение указанного столбца. Синтаксис: `abs(column)` Пример: `abs([Debt])`. Если `Debt` было -100, `abs(-100)` вернет `100`. ### Between Проверяет значения столбца даты или числа, чтобы убедиться, что они находятся в пределах указанного диапазона. Синтаксис: `between(column, start, end)` Пример: `between([Created At], "2019-01-01", "2020-12-31")` вернет строки, в которых дата «Создано в» попадает в диапазон от 1 января 2019 г. до 31 декабря 2020 г. Связано: [interval](#interval). ### [case](./expressions/case.md) Проверяет выражение по списку вариантов и возвращает соответствующее значение первого совпадающего случая с необязательным значением по умолчанию, если ничего другого не встречается. Синтаксис: `case(condition, output, …)` Пример: `case([Weight] > 200, "Large", [Weight] > 150, "Medium", "Small")` Если «Вес» равен 250, выражение вернет значение «Большой». В этом случае значением по умолчанию является «Маленький», поэтому любой «Вес» 150 или меньше вернет «Маленький». ### Ceil Округляет десятичную дробь вверх. Синтаксис: `ceil(column)`. Пример: `ceil([Price])`. `ceil(2.99)` вернет 3. Связано: [Пол](#floor), [Округление](#round). ### [Сoalesce](./expressions/coalesce.md) Просматривает значения в каждом аргументе по порядку и возвращает первое ненулевое значение для каждой строки. Синтаксис: `coalesce(value1, value2, …)` Пример: `coalesce([Comments], [Notes], "No comments")`. Если оба столбца «Комментарии» и «Примечания» для этой строки пусты, выражение вернет строку «Нет комментариев». ### [concat](./expressions/concat.md) Объедините две или более строк вместе. Синтаксис: `concat(value1, value2, …)` Пример: `concat([Last Name], ", ", [First Name])` создаст строку формата «Фамилия, Имя», например «Палаццо, Энрико». ### Contains Проверяет, содержит ли string1 строку string2. Синтаксис: `contains(string1, string2)` Пример: `contains([Status], "Class")`. Если бы «Статус» был «Засекречено», выражение вернуло бы «истину». Связано: [regexextract](#regexextract). ### [convertTimezone](./expressions/converttimezone.md) Сдвигает значение даты или метки времени в указанный часовой пояс. Синтаксис: `convertTimezone(column, target, source)`. Пример: `convertTimezone("2022-12-28T12:00:00", "Canada/Pacific", "Canada/Eastern")` может вернуть значение «2022-12-28T09:00:00», отображаемое как «28 декабря 2022 г., 9:00». ### [datetimeAdd](./expressions/datetimeadd.md) Добавляет некоторую единицу времени к значению даты или метки времени. Синтаксис: `datetimeAdd(column, amount, unit)`. Пример: `datetimeAdd("2021-03-25", 1, "month")` вернет значение «2021-04-25», отображаемое как «25 апреля 2021 года». Связано: [between](#between), [datetimesubtract](#datetimesubtract). ### [datetimeDiff](./expressions/datetimediff.md) Возвращает разницу между двумя датами и временем в некоторую единицу времени. Например, `datetimeDiff(d1, d2, "day")` вернет количество дней между `d1` и `d2`. Синтаксис: `datetimeDiff(datetime1, datetime2, unit)`. Пример: `datetimeDiff("2022-02-01", "2022-03-01", "month")` вернет `1`. ### [datetimeSubtract](./expressions/datetimesubtract.md) Вычитает некоторую единицу времени из значения даты или метки времени. Синтаксис: `datetimeSubtract(column, amount, unit)`. Пример: `datetimeSubtract("2021-03-25", 1, "month")` вернет значение «2021-02-25», отображаемое как «25 февраля 2021 года». Связано: [between](#between), [datetimeadd](#datetimeadd). ### Day Принимает дату и время и возвращает день месяца в виде целого числа. Синтаксис: `day([datetime column])`. Пример: `day("2021-03-25T12:52:37")` вернет день как целое число `25`. ### endsWith Возвращает true, если конец текста соответствует тексту сравнения. Синтаксис: `endsWith(text, comparison)` `endsWith([Appetite], "hungry")` Связано: [contains](#contains) and [startswith](#startswith). ### exp Возвращает [число Эйлера](), e, возведенное в степень заданного числа. Синтаксис: `exp(column)`. Пример: `exp([Interest Months])` Связано: [power](#power). ### floor Округляет десятичное число в меньшую сторону. Синтаксис: `floor(column)` Пример: `floor([Price])`. Если бы «Цена» была равна 1,99, выражение вернуло бы 1. Связано: [ceil](#ceil), [round](#round). ### Hour Принимает дату и время и возвращает час в виде целого числа (0-23). Синтаксис: `hour([datetime column])`. Пример: `hour("2021-03-25T12:52:37")` вернет `12`. ### Interval Проверяет значения столбца даты, чтобы увидеть, находятся ли они в относительном диапазоне. Синтаксис: `interval(column, number, text)`. Пример: `interval([Created At], -1, "month")`. Связано: [between](#between). ### [isempty](./expressions/isempty.md) Возвращает true, если столбец пуст. Синтаксис: `isempty(column)` Пример: `isempty([Discount])` вернет true, если в поле скидки не будет значения. ### [isnull](./expressions/isnull.md) Возвращает true, если столбец пуст. Синтаксис: `isnull(column)` Пример: `isnull([Tax])` вернет true, если в столбце для этой строки не будет значения. ### ltrim Удаляет начальные пробелы из строки текста. Синтаксис: `ltrim(text)` Пример: `ltrim([Comment])`. Если бы комментарий был "Я бы предпочел не делать этого", `ltrim` вернул бы "Я бы предпочел не делать этого". Связано: [trim](#trim) and [righttrim](#righttrim). ### length Возвращает количество символов в тексте. Синтаксис: `length(text)` Пример: `length([Comment])` Если бы `комментарий` был "мастером", `длина` вернула бы 6 ("мастер" имеет шесть символов). ### log Возвращает десятичный логарифм числа. Синтаксис: `log(column)`. Пример: `log([Value])`. ### lower Возвращает строку текста в нижнем регистре. Синтаксис: `lower(text)`. Пример: `lower([Status])`. Если бы `Status` был "QUIET", выражение вернуло бы "quiet". Связано: [upper](#upper). ### minute Принимает дату и время и возвращает минуты в виде целого числа (0-59). Синтаксис: `minute([datetime column])`. Пример: `minute("2021-03-25T12:52:37")` вернет `52`. ### month Принимает дату и время и возвращает номер месяца (1-12) в виде целого числа. Синтаксис: `month([datetime column])`. Пример: `month("2021-03-25T12:52:37")` вернет месяц как целое число, `3`. ### [now](./expressions/now.md) Возвращает текущую дату и время с использованием [часового пояса отчета](../../configuring-metabase/localization.md#report-timezone) GlarusBI. Синтаксис: `now`. ### power Возводит число в степень значения экспоненты. Синтаксис: `power(column, exponent)`. Пример: `power([Length], 2)`. Если бы длина была `3`, выражение вернуло бы `9` (3 во второй степени равно 3*3). Базы данных, которые не поддерживают `степень`: SQLite. Связано: [exp](#exp). ### quarter Принимает дату и время и возвращает номер квартала в году (1-4) в виде целого числа. Синтаксис: `quarter([datetime column])`. Пример: `quarter("2021-03-25T12:52:37")` вернет 1 для первой четверти. ### [regexextract](./expressions/regexextract.md) Извлекает совпадающие подстроки в соответствии с регулярным выражением. Синтаксис: `regexextract(text, regular_expression)`. Пример: `regexextract([Address], "[0-9]+")`. Базы данных, которые не поддерживают `regexextract`: H2, SQL Server, SQLite. Связано: [contains](#contains), [substring](#substring). ### replace Заменяет часть введенного текста новым текстом. Синтаксис: `replace(text, find, replace)`. Пример: `replace([Title], "Enormous", "Gigantic")`. ### rtrim Удаляет конечный пробел из строки текста. Синтаксис: `rtrim(text)` Пример: `rtrim([Comment])`. Если бы комментарий был «Страх убивает разум », выражение возвращало бы «Страх убивает разум». Связано: [trim](#trim) and [lefttrim](#lefttrim). ### round Округляет десятичное число вверх или вниз до ближайшего целого числа. Синтаксис: `round(column)`. Пример: `round([Temperature])`. Если бы температура была «13,5» градусов по Цельсию, выражение вернуло бы «14». ### second Принимает дату и время и возвращает количество секунд в минутах (0-59) в виде целого числа. Синтаксис: `second([datetime column)`. Пример: `second("2021-03-25T12:52:37")` вернет целое число `37`. ### sqrt Возвращает квадратный корень значения. Синтаксис: `sqrt(column)`. Пример: `sqrt([Hypotenuse])`. Базы данных, которые не поддерживают `sqrt`: SQLite. Связано: [power](#power). ### startsWith Возвращает true, если начало текста соответствует тексту сравнения. Синтаксис: `startsWith(text, comparison)`. Пример: `startsWith([Course Name], "Computer Science")` вернет true для названий курсов, начинающихся с «Информатика», например «Информатика 101: введение». Связано: [endswith](#endswith), [contains](#contains). ### [substring](./expressions/substring.md) Возвращает часть предоставленного текста, заданную начальной позицией и длиной. Синтаксис: `substring(text, position, length)` Пример: `substring([Title], 1, 10)` возвращает первые 10 букв строки (индекс строки начинается с позиции 1). Связано: [regexextract](#regexextract), [replace](#replace). ### trim Удаляет начальные и конечные пробелы из строки текста. Синтаксис: `trim(text)` Пример: `trim([Comment])` удалит любые пробельные символы по обе стороны от комментария. ### upper Возвращает текст в верхнем регистре. Синтаксис: `upper(text)`. Пример: `upper([Status])`. Если бы статус был "гипер", `upper("гипер")` вернул бы "ГИПЕР". ### week Принимает дату и время и возвращает неделю как целое число. Синтаксис: `week(column, mode)`. Пример: `week("2021-03-25T12:52:37")` вернет неделю как целое число, `12`. - столбец: имя столбца значения даты или даты и времени. - режим: необязательно. - ISO: (по умолчанию) Неделя 1 начинается в понедельник перед первым четвергом января. - США: неделя 1 начинается 1 января. Все остальные недели начинаются в воскресенье. - Экземпляр: неделя 1 начинается 1 января. Все остальные недели начинаются в день, указанный в настройках локализации вашей Metabase. ### year Принимает дату и время и возвращает год как целое число. Синтаксис: `year([datetime column])`. Пример: `year("2021-03-25T12:52:37")` вернет 2021 год как целое число, `2,021`. ## Ограничения базы данных Если вы используете или поддерживаете сторонний драйвер базы данных, [обратитесь к вики(https://github.com/metabase/metabase/wiki/What's-new-in-0.35.0-for-GlarusBI-driver-authors), чтобы увидеть, как это может повлиять на ваш драйвер. См. [Пользовательские выражения в редакторе записной книжки](https://www.metabase.com/learn/questions/custom-expressions) чтобы узнать больше. [expressions]: ./expressions.md