DAX: различить, а затем агрегировать дважды - PullRequest
0 голосов
/ 21 ноября 2019

Я пытаюсь создать показатель в Power BI с помощью DAX, который обеспечивает следующее:

Набор данных состоит из четырех столбцов: Имя, Месяц, Страна и Значение. У меня есть дубликаты, поэтому сначала мне нужно выполнить дедупликацию по всем четырем столбцам, затем сгруппировать по месяцам и суммировать значение. И затем мне нужно усреднить по месяцу, чтобы получить одно значение. Как бы я достиг этого в DAX?

Ответы [ 2 ]

1 голос
/ 21 ноября 2019

Я понял это. Ответ @OscarLar был очень близок, но вложенный SUMMARIZE вызывает проблемы, поскольку он не может агрегировать значения, рассчитанные динамически в самом запросе (https://www.sqlbi.com/articles/nested-grouping-using-groupby-vs-summarize/).

. Я сохранил внутреннее SUMMARIZE из ответа @ OscarLar, изменив внешнее SUMMARIZE с помощью GROUPBY. Вот код, который работал.

AVERAGEX(GROUPBY(SUMMARIZE(Data, Data[Name], Data[Month], Data[Country], Data[Value]), Data[Month], "Month_Value", sumx(CURRENTGROUP(), Data[Value])), [Month_Value])

0 голосов
/ 21 ноября 2019

Не уверен, что я полностью понял вопрос, так как вы не предоставили пример данных или некоторый код DAX, который вы уже пробовали. Пожалуйста, сделайте это в следующий раз.

Я предполагаю, что части этого не могут (по причинам) быть выполнены с помощью запроса мощности, так что вам придется использовать DAX. Тогда я думаю, что это сделает то, что вы описали.

Создайте временную таблицу данных с именем Data_reduced, в которой были удалены повторяющиеся строки.

Data_reduced = 
SUMMARIZE(
    'Data';
    [Name];
    [Month];
    [Country];
    [Value]
)

Затем создайте меру усреднения следующим образом:

AveragePerMonth = 
AVERAGEX(  
    SUMMARIZE( 
        'Data_reduced';
        'Data_reduced'[Month];
        "Sum_month"; SUM('Data_reduced'[Value])
    );
    [Sum_month]
)

Где Data - имя таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...