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

Поддерживаемые функции
| Функция | Для чего нужна | Пример |
|---|---|---|
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') |

Операторы и условия
- Сравнения:
==,!=,>,>=,<,<=. - Логика:
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 и связанный сервис.

