Запросы DAX с использованием переменных и важных функций

В этом руководстве мы обсудим переменные, в том числе функции и CALCULATE . Вы поймете, как это поможет повысить производительность ваших запросов DAX и предоставить точные результаты.

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

Важно знать, где вы должны определять и использовать переменные, потому что их использование внутри и вне итерации приведет к разным результатам. Они должны быть определены близко к тому месту, где они будут использоваться. Это также помогает разбивать длинные коды, облегчая их понимание и отладку.

Оглавление

Создание запросов DAX с помощью CALCULATE и FILTER

Существуют разные способы получения результатов и ответов в DAX. Вам необходимо разработать свой собственный стиль и порядок создания отчета, чтобы вам было комфортно работать с тем, над чем вы работаете. Даже если у вас есть собственный стиль, вы все равно должны следовать определенным рекомендациям, в том числе использовать CALCULATE вместо других методов, таких как FILTER .

FILTER может отправлять много несжатых данных в обработчик формул и потенциально может инициировать CallBackDataID. Меры будут использоваться здесь, чтобы показать результаты CALCULATE и FILTER . Это также имеет определенную меру, которая является локальной для запроса. Определенные меры нельзя найти в модели данных, но они могут ускорить разработку и устранение неполадок в коде.

Запросы DAX с использованием переменных и важных функций

В первой строке вы видите меру, определяющую переменную для даты. Это означает, что он фильтрует таблицу фактов для дат, которые приходятся на 31 марта 2016 года или позже. Вы также можете увидеть простую меру общего объема продаж, которая повторяет таблицу фактов продаж и умножает количество и текущую цену.

Следующая мера — использование внутри . Если вы помните из модуля CallBackDataID , использование IF внутри функции SUMX создаст CallBackDataID .

Запросы DAX с использованием переменных и важных функций

Эта мера фильтрует всю таблицу Fact Sales. Он удаляет фильтры из таблицы Date.

Запросы DAX с использованием переменных и важных функций

Вы должны быть осторожны при фильтрации всей таблицы, потому что она также будет фильтровать все столбцы, которые находятся на одной стороне отношения «один ко многим».

Эта мера такая же, как и предыдущая мера; единственная разница в том, что он не фильтрует всю таблицу. Он использует SUMX только для итерации отфильтрованной таблицы.

Запросы DAX с использованием переменных и важных функций

Это еще одна мера, которая фильтрует таблицу «Продажи фактов», но на этот раз она применяется только к тому столбцу, в котором она находится.

Запросы DAX с использованием переменных и важных функций

Последняя мера использует CALCULATE и модель данных для фильтрации и извлечения данных.

Запросы DAX с использованием переменных и важных функций

Запустите и проверьте каждую меру

Во-первых, запустите измерение ЕСЛИ . Обязательно очистите кеш перед выполнением запроса и включите параметры времени сервера и план запроса.

Запросы DAX с использованием переменных и важных функций

Запросы DAX с использованием переменных и важных функций

Хотя он предоставляет правильные данные, производительность низкая из-за CallBackDataID и 3 Durations.

Если вы запустите меру, которая фильтрует всю таблицу Fact Sales, вы все равно сможете увидеть CallBackDataID . Он также сгенерирует 15 003 строки и выдаст неправильные результаты.

Запросы DAX с использованием переменных и важных функций

Запросы DAX с использованием переменных и важных функций

Когда вы запускаете меру, которая не фильтрует всю таблицу Fact Sales, вы получите правильные результаты. Однако вы по-прежнему будете видеть CallBackDataID и материализованные 15 003 строки, но только 7 строк вывода.

Запросы DAX с использованием переменных и важных функций

Запросы DAX с использованием переменных и важных функций

Запустите следующую меру, которая фильтрует столбец. Вы получите правильные результаты и устраните CallBackDataID . Но вы все еще можете видеть, что он материализовал много строк.

Запросы DAX с использованием переменных и важных функций

Запросы DAX с использованием переменных и важных функций

Запустите меру CALCULATE . Вы можете видеть, что он материализовал только 10 строк и сгенерировал правильные данные за 5 миллисекунд.

Запросы DAX с использованием переменных и важных функций

Запросы DAX с использованием переменных и важных функций

Это самая быстрая из всех вышеперечисленных мер, потому что она не имеет CallBackDataID и извлекает только 10 строк. Это показывает, насколько впечатляет CALCULATE в получении быстрых и точных результатов.

Если вы выпол��яете все запросы или меры DAX, вы можете увидеть, какой из них является самым медленным и самым быстрым в зависимости от продолжительности. Вы также можете увидеть результаты каждой меры.

Запросы DAX с использованием переменных и важных функций

Запросы DAX с использованием переменных и важных функций

Заключение

Переместив фильтры в CALCULATE, вы сэкономите время и материализацию, поскольку CallBackDataID будет устранен. Вам не придется повторять данные дважды. Это также повысит производительность вашего DAX и поможет вам улучшить свои навыки разработки.

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

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

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.