ИИ

Особенности агрегации SUMMARIZE в Power BI

Краткое резюме

Функция SUMMARIZE в Power BI осуществляет «отложенную» агрегацию за счёт сохранения состояния. Это влияет на расчёт средних значений и других агрегаций, не похожих на SUM.

Здравствуйте, читатели Хабра! Некоторые функции DAX в Power BI кажутся интуитивно понятными, однако при более внимательном изучении их поведение может оказаться неожиданным. Например, функция SUMMARIZE не выполняет агрегацию «сразу» в месте использования. Вместо этого она осуществляет «виртуальную», «отложенную» агрегацию за счёт сохранения состояния. Для функции SUM, которая вычисляет сумму, промежуточное состояние и есть сумма, поэтому особенности SUMMARIZE не проявляются. Однако при использовании других агрегаций, таких как AVERAGE (среднее значение), становится очевидно, что Power BI уже учитывает так называемое состояние для корректного расчёта SUMMARIZE. Это означает, что данные по всем записям сохраняются в состоянии. В других системах управления базами данных (СУБД) единственным аналогом являются комбинаторы State и Merge из ClickHouse. Для иллюстрации состояний будет рассмотрен пример из ClickHouse, соответствующий DAX с SUMMARIZE и AVERAGE. Если вам интересны особенности работы SUMMARIZE в Power BI, приглашаем ознакомиться с более подробным описанием под катом.

Фильтры и сортировка