Репорты: псевдоязык выражений

Репорты
Версия: v2Дата: 15.06.2026

Что такое выражение

Выражение — это формула, по которой cdp_report считает серию отчёта. Это не SQL и не произвольный JavaScript. В интерфейсе подсказка открывается через «?» рядом с полем выражения, а источник справки на фронте — components/Builder/ExpressionHelpModal.vue и assets/help/report-expression-help.json.

Репорты: Expression Help
Модальное окно справки показывает функции, условия, примеры и частые ошибки.

Поддерживаемые функции

ФункцияДля чего нужнаПример
countпосчитать количество событийcount(visit_page)
sumсложить числовое полеsum(order.amount)
avgпосчитать среднееavg(order.amount)
min/maxминимум или максимумmax(session.duration)
countIfпосчитать только подходящие событияcountIf(visit_page.country == 'RU')
sumIf/avgIf/minIf/maxIfагрегировать числовое поле по условиюsumIf(order.amount, order.status == 'paid')
Репорты: поле выражения
Выражение должно ссылаться на eventType или eventType.field.

Операторы и условия

  • Сравнения: ==, !=, >, >=, <, <=.
  • Логика: AND, OR, NOT.
  • Арифметика: +, -, *, /.
  • Строки пишутся в одинарных кавычках: order.status == 'paid'.
  • Для сложных условий используйте скобки.

Чего нельзя делать

  • Нельзя писать SQL.
  • Нельзя вызывать неизвестные функции.
  • Нельзя вкладывать агрегат в агрегат.
  • Нельзя сравнивать строку с числом без нормального типа данных.
  • В текущей версии используйте пути вида eventType и eventType.field; глубокие пути проверяйте на реальных событиях.

Технически: пользователь работает во frontend через REST в gateway. Внутри CDP используется контур gateway → cdp_report; факты берутся из event, лимиты — из payment, графики рисует frontend/d3js. Пользователю это нужно знать только для диагностики: если UI показывает ошибку, смотрите route, HTTP-статус gateway и связанный сервис.

Репорты: валидное выражение
После заполнения builder должен показать, что definition валидна.