Расчеты показателя на последнюю дату
Задача
Найти сумму остатков или платежей только на последнюю дату в выбранном периоде, игнорируя остальные дни.
Проблема
Данные хранятся ежедневно, но нужен итог именно на конец периода. BI-система часто не позволяет использовать простые подзапросы (вроде WHERE date = MAX(date)) в стандартных агрегациях.
Решение
Использовать ClickHouse функцию sumArgMax.
Функция принимает два параметра:
- столбец со значениями для суммирования
- и столбец, по которому определяется максимум
В результате будут просуммированы все значения из первого столбца, соответствующие строкам с максимальным значением во втором столбце.
Реализуем решение
-
Добавим карточку KPI и добавим 2 переменные:
- date для хранения максимальной даты в периоде
- val для хранения значения суммы продаж
Добавим их в шаблон карточки:


- Для даты найдем максимальную дату в периоде и приведем к удобному формату. Для расчета значений продаж используем sumArgMax (<столбец с продажами>, <столбец с датой>)

Итог
Получаем карточку KPI с рассчитанным значением на последнюю дату в произвольном периоде:
