Избегайте DISTINCTCOUNT в PowerPivot

Из-за проблем с производительностью мне нужно удалить несколько отдельных счетчиков в моем DAX. Однако у меня есть конкретный сценарий, и я не могу понять, как это сделать.

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

введите описание изображения здесь

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

введите описание изображения здесь

Почему бы не рассчитать это заранее в Power Query? Реальные данные, которые у меня есть, немного сложнее (больше столбцов идентификаторов), и для того, чтобы иметь возможность сводить данные, мне пришлось бы вычислить тысячи возможных комбинаций.

Я попытался добавить в свою модель размерную таблицу Feast (в примере это был бы только 1 столбец из 2 строк). Я надеялся использовать эту взаимосвязь, чтобы иметь возможность провести прямой подсчет, но мне не удалось найти правильный DAX для этого.


person Victor    schedule 09.03.2016    source источник
comment
Какой процент застолий имеет одно меню и один ресторан? Если это значительное число, попробуйте эту оптимизацию: artisconsulting.com/blogs/greggalloway/2015/9/28/   -  person GregGalloway    schedule 10.03.2016


Ответы (1)


Вы можете использовать COUNTROWS () в сочетании с VALUES ().

В частности, COUNTROWS () даст вам количество строк в таблице. Это означает, что COUNTROWS ожидает ввода таблицы. Вот волшебная часть: VALUES () вернет таблицу в качестве результатов, а таблица, которую она возвращает, представляет собой различные значения в таблице / столбце, которые вы указываете в качестве аргумента для VALUES ().

Я не уверен, хорошо ли я это объясняю, поэтому для предоставленных вами образцов данных мера будет выглядеть следующим образом (при условии, что таблица называется Table1):

Unique Feasts:=COUNTROWS(VALUES('Table1'[Feast Id]))

Затем вы можете создать сводную таблицу из Powerpivot, перетащить идентификатор ресторана в строки и перетащить показатель выше в значения. Тот же результат, что и DISTINCTCOUNT, но с меньшими накладными расходами (я думаю).

person Jeremy Firth    schedule 11.03.2016