Применение агрегирования по столбцам в DAX

Вопросы и ответы

Я имею набор данных, как показано ниже:

Я использовал SUMMARIZECOLUMNS для агрегирования по Name и Year и вычислил MAX(Points), чтобы получить следующий вывод:

VAR DistinctValueTable =
SUMMARIZECOLUMNS(‘MyTable'[Name], ‘MyTable'[Year], “Max Points”, MAX(‘MyTable'[Points]) )

Теперь мне нужно сложить Max Points для каждого Name. Как я могу это сделать?
SUMMARIZE(DistinctValueTable , [Name], SUM[Max Points])

не работает. Я хочу, чтобы мой вывод выглядел так:

Ответ

Чтобы решить задачу суммирования максимальных очков для каждого имени после того, как вы уже использовали функцию SUMMARIZECOLUMNS, вы можете использовать комбинацию функций DAX. Первым делом, вы создали таблицу с максимальными очками для каждого имени и года. Теперь нужно суммировать максимальные очки для каждого имени.

Вот как это можно сделать:

  1. Используем функцию SUMMARIZECOLUMNS, чтобы получить таблицу с максимальными очками для каждого имени и года.
  2. Используем SUMMARIZE или GROUPBY для группировки по имени и суммирования максимальных очков.

Вот код, который выполнит эти шаги:

VAR DistinctValueTable =
    SUMMARIZECOLUMNS(
        'MyTable'[Name], 
        'MyTable'[Year], 
        "Max Points", MAX('MyTable'[Points])
    )

VAR ResultTable =
    SUMMARIZE(
        DistinctValueTable, 
        [Name], 
        "Total Max Points", SUM([Max Points])
    )

RETURN
    ResultTable

В этом коде:

  • DistinctValueTable содержит уникальные сочетания имен и годов с максимальными очками.
  • Мы используем SUMMARIZE, чтобы сгруппировать данные по имени и суммировать максимальные очки (используя SUM([Max Points])), создавая новую колонку с названием "Total Max Points".

Теперь ResultTable содержит итоговую сумму максимальных очков для каждого имени. Вы можете использовать эту таблицу далее в вашем отчете или визуализации.

Оцените материал
Добавить комментарий

Капча загружается...