Агрегатные функции
Агрегатные функции применяются ко всем строкам датасета, а не к одной строке. Результат — одно число.
sum(expr)
Сумма выражения по всем строкам датасета.
sum(amount)sum(amount * (1 - tax_rate))- Если все значения пусты —
0. - Null и пустые значения игнорируются (не считаются как 0; они просто не входят в сумму).
avg(expr)
Среднее арифметическое значений выражения. Null’ы игнорируются.
avg(monthly_rent)avg(roi(sale_price, purchase_price))- Если все значения пусты —
null.
count(expr)
Количество строк, в которых выражение возвращает непустое (не null, не пустую строку) значение.
count(payment_date) // количество строк с заполненной датойcount(1) // итого строк (1 всегда непусто)Когда использовать в формуле-поле
⚠️ Уточнить: агрегаты работают только когда есть контекст «весь датасет». В виджетах на дашборде такой контекст есть всегда. В формуле-поле — не везде: ошибка
Aggregate sum() can't be used in a per-row formulaпоявится, если контекст пуст. Если столкнулись — либо считайте на дашборде через KPI, либо проверьте, не используете ли вы формулу в drill-down вне обычного экрана таблицы.
Конкретный пример, где точно работает: KPI на дашборде:
- Источник: «Транзакции».
- Значение:
sum(amount). - Итог — одна цифра.
Граничные случаи
- Пустой датасет:
sum→0,avg→null,count→0. - Все null: то же.
- Текстовые значения, которые не парсятся как число — игнорируются в
sum/avg.
Частые ошибки
sum(amount where category == "X"). В формулах нет фильтрации внутри функции. Фильтруйте на уровне виджета.- Используют агрегат для строкового значения.
sum("Зарплата")бессмысленен; используйтеcountдля подсчёта.