Макрос $accumulateSum позволяет выполнять аргегирующее суммирование с накоплением (нарастающий итог) для источников PostgreSQL и ClickHouse, когда каждая последующая строка включает сумму своей группы и предыдущих. Например, может использоваться для суммирования прибыли по месяцам.
Для PostgreSQL макрос выполняет замену на $over, который в конечном итоге транслируется в выражение вида sum(valueField) over (oder by sortField rows between unbounded preceding and current row).
При использовании $accumulateSum в запросах к PostgreSQL обязательно добавление в выражение аргумента $orderBy для определения последовательности строк для суммирования (нарушение порядка будет приводить к неправильному результату).
Всё то же самое можно реализовать без использования макроса, для этого используйте оператор
$sql, где в качестве выражения заданоsum(${0}) over (oder by ${0} rows between unbounded preceding and current row), а также два аргумента (значение для суммирования и поле сортировки).
Пример использования:

Для определения условий формирования групп при расчёте суммы с накоплением используйте дополнительное поле $partitionBy совместно с #sort.
В связи с особенностями построения структуры запроса и работы оконных функций в ClickHouse, в некоторых случаях данный макрос (оператор) может приводить к неверным результатам. В таком случае рекомендуется использовать объет "SQL функция" и оператор $sql.
Для ClickHouse макрос выполняет замену на $sql, который в конечном итоге транслируется в выражение вида runningAccumulate(sumState(valueField)). Все опциональные аргументы $accumulateSum при использовании с ClickHouse игнорируются.
При использовании $accumulateSum в запросах к ClickHouse рекомендуется добавление в запрос условий сортировки $sort для определения последовательности строк для суммирования (нарушение порядка будет приводить к неправильному результату).
Также при использовании $accumulateSum в запросах к ClickHouse обязательно необходимо использовать группировку в запросах $groupBy.
Пример использовния:
