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

Синтаксис формул

Типы данных

Тип Формат Примеры
Числовой Целые и дробные числа 10, 3.14, -5
Строковый В одинарных кавычках 'Привет', 'Данные'
Дата 'ГГГГ-ММ-ДД' '2023-11-23'
Дата-Время 'ГГГГ-ММ-ДД ЧЧ:ММ:СС' '2023-11-23 14:30:00'
Логический TRUE или FALSE TRUE, false
NULL NULL NULL

Идентификаторы

  • Ссылки на поля: [Имя поля] (напр. [Продажи], [Имя клиента])
  • Могут ссылаться на вычисляемые меры из других мер/измерений

Операторы

Арифметические

+, -, *, /

Сравнения

=, !=, <>, >, <, >=, <=, LIKE, NOT LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN

Подстановочные знаки для LIKE: - % - ноль или более символов - _ - ровно один символ

Примеры:

[Статус] LIKE 'Актив%'
[ID] IN (1, 2, 3)
[Цена] BETWEEN (10, 100)

Проверка NULL

IS NULL, IS NOT NULL

Логические

AND, OR, NOT

Конкатенация строк

& (напр. 'Привет' & 'Мир''ПриветМир')

Экранирование

\ (напр. 'О\'Рейли')

Функции

Агрегатные

Функция Описание Пример
SUM([поле]) Сумма значений SUM([Доход])
AVG([поле]) Среднее значение AVG([Температура])
COUNT([поле]) Количество не-NULL значений COUNT([Заказы])
MIN([поле]) Минимальное значение MIN([Цена])
MAX([поле]) Максимальное значение MAX([Оценка])
COUNTDISTINCT([поле]) Количество уникальных значений COUNTDISTINCT([ID_клиента])

Строковые

Функция Описание Пример
LEFT([поле], длина) Левые символы LEFT([Имя], 3)
RIGHT([поле], длина) Правые символы RIGHT([Код], 2)
LENGTH([поле]) Длина строки LENGTH([Описание])

Дата/Время

Функция Описание Пример
YEAR([поле]) Год YEAR([ДатаЗаказа])
MONTH([поле]) Месяц (1-12) MONTH([ДатаРождения])
DAY([поле]) День (1-31) DAY([Срок])
HOUR([поле]) Час (0-23) HOUR([МеткаВремени])
MINUTE([поле]) Минуты (0-59) MINUTE([ВремяЖурнала])
SECOND([поле]) Секунды (0-59) SECOND([ВремяСобытия])
DATE(год, месяц, день) Создать дату DATE(2023, 12, 25)
DATETIME(...) Создать дату-время DATETIME(2023, 12, 25, 14, 30, 0)

Условные

Функция Описание Пример
IF(условие, да, нет) Условная логика IF([Кол-во] > 10, 'Опт', 'Розница')

Работа с NULL

Функция Описание Пример
ISNULL([поле]) Проверка на NULL ISNULL([Отчество])
NULLIF([поле], значение) Возвращает NULL если равно NULLIF([Статус], 'Ожидание')

Анализ наборов (Фильтрация)

В фигурных скобках {}:

Базовый синтаксис:

{[Регион] = 'Север'}
{[Статус] IN ('Активен', 'Ожидание')}
{[Возраст] BETWEEN (18, 65)}

Поиск с подстановочными знаками:

{[Продукт] LIKE 'Про%'}

Комбинация с полями/агрегацией:

({[Регион] = 'Север'} [Продажи])
SUM({[Год] = 2023} [Доход])

Сложные условия:

{[Отдел] = 'Продажи' AND ([Статус] = 'Активен' OR [ДатаНайма] > '2020-01-01')}

Выражения

  • Используйте круглые скобки () для группировки
  • Функции можно вкладывать
  • Примеры: sql SUM([Продажи]) / COUNTDISTINCT([ID_клиента]) IF([Оценка] > 90, 'A', IF([Оценка] > 80, 'B', 'C')) LEFT([Имя], 1) & '. ' & [Фамилия]

Примечания

  • Имена полей чувствительны к регистру
  • Строковые сравнения чувствительны к регистру по умолчанию
  • Литералы даты/времени должны использовать точный указанный формат
  • NULL значения должны сравниваться через IS NULL/IS NOT NULL
  • Экранируйте специальные символы в строках через обратный слеш (\)