Перейти к основному содержимому

Расчеты показателя на последнюю дату

Задача

Найти сумму остатков или платежей только на последнюю дату в выбранном периоде, игнорируя остальные дни.

Проблема

Данные хранятся ежедневно, но нужен итог именно на конец периода. BI-система часто не позволяет использовать простые подзапросы (вроде WHERE date = MAX(date)) в стандартных агрегациях.

Решение

Использовать ClickHouse функцию sumArgMax.

Функция принимает два параметра:

  • столбец со значениями для суммирования
  • и столбец, по которому определяется максимум

В результате будут просуммированы все значения из первого столбца, соответствующие строкам с максимальным значением во втором столбце.

Реализуем решение

  1. Добавим карточку KPI и добавим 2 переменные:

    • date для хранения максимальной даты в периоде
    • val для хранения значения суммы продаж

Добавим их в шаблон карточки:

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

Итог

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