Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
В этом руководстве вы узнаете о различных ключевых словах и функциях в DAX Studio с конкретным примером запроса для каждого из них.
В частности, вы узнаете о ключевых словах ORDER BY и START AT, а также о функциях TOPNSKIP и ADDMISSINGITEMS.
Оглавление
Пример запроса DAX: ORDER BY по ключевому слову
Ключевое слово ORDER BY позволяет сортировать набор данных.
Основной пример
Например, используя ключевое слово ORDER BY, вы можете отсортировать столбец в алфавитном порядке.
Вы можете видеть, что данные первой строки начинаются с «A». Порядок сортировки по умолчанию в DAX Studio — возрастающий .
Если вы хотите, чтобы ваши данные отображались в порядке убывания, напишите DESC . Таким образом, в этом примере вместо буквы «А» столбец «Бренд» будет начинаться с буквы «W».
Точно так же, если вы хотите вернуть его к восходящему порядку, напишите ASC . Вы также можете сортировать несколько столбцов одновременно. Вы можете сделать это, написав нужные столбцы, разделяя их запятой.
Пример из реальной жизни
Теперь давайте рассмотрим простое реальное приложение, использующее ключевое слово ORDER BY. Это тот же пример, который использовался в учебнике по ключевым словам TABLE .
Вы можете видеть, что эта таблица возвращает 3 столбца. Первый — это тип продукта, состоящий из скучных и модных. Второй столбец показывает общий объем продаж по типу продукта. Третий возвращает процент от продаж.
В этом примере вам нужно создать новый столбец, который сортирует тип продукта. Итак, после оператора напишите ключевое слово COLUMN , а затем имя столбца, который вы хотите создать.
Формула для этого столбца такая же, как синтаксис IF, но вместо «Модный» и «Скучный» в этом столбце будет отображаться «1» для Модного и «2» для Скучного.
Чтобы увидеть этот столбец в таблице, запишите его в синтаксисе EVALUATE.
Затем вы увидите, что в таблицу, состоящую из чисел 1 и 2, добавлен новый столбец «Сортировка по типу продукта».
Чтобы отсортировать этот столбец, напишите ключевое слово ORDER BY после синтаксиса . Затем после имени столбца напишите ASC или DESC в зависимости от порядка сортировки, который вы хотите использовать для столбца.
Пример запроса DAX: START AT
Следующее, что вы узнаете, это ключевое слово START AT .
START AT — это устаревшее ключевое слово. Его использование не рекомендуется для большинства запросов DAX. Однако вы все равно можете найти некоторый код DAX, который использует это. Поэтому все же важно знать, что это такое и в каких случаях его можно использовать.
Основной пример
Сначала напишите ключевое слово EVALUATE. В этом примере используется таблица Products. Прежде чем написать START AT, сначала используйте ORDER BY , а затем укажите столбцы, которые вы хотите включить.
Затем вы можете написать START AT. Этот синтаксис будет следовать порядку, аналогичному тому, как вы написали свои столбцы в ORDER BY. В этом примере столбец «Ключ продукта» будет начинаться с «2», а столбец «Бренд» — с «Contoso».
Когда вы нажмете F5, вы увидите в таблице результатов, что указанные столбцы следуют направлению запроса.
Теперь давайте посмотрим, что происходит, когда добавляется еще один столбец. В этом случае столбец «Цвет» должен начинаться с «Серебряный».
Когда вы запустите этот запрос, вы увидите, что первая запись в столбце «Цвет» — «белая». Не гарантируется, что результат всегда будет соответствовать всем условиям при использовании START AT.
В этом примере в таблице Products нет экземпляра, содержащего 2, Contoso и Silver в одной строке. Вместо этого механизм DAX пытается создать наилучшее соответствие для созданного вами запроса.
Сложный пример
Давайте посмотрим на другой пример:
После EVALUATE напишите ключевое слово ORDER BY, за которым следуют три указанных столбца. После этого напишите START AT. В этом случае столбец «Цвет» должен начинаться с «Красный», столбец «Пол» должен начинаться с «М», а столбец «Ключ магазина» должен начинаться с «2».
После выполнения запроса вы увидите, что механизм DAX изо всех сил старался соответствовать указанным параметрам.
В результатах вы можете видеть, что два столбца верны, а столбец Store Key начинается со 199 вместо 2. Это связано с тем, что Store Key со значением 2 не существует в модели данных этого примера.
Медленный двигатель DAX
Нажмите кнопку «Время сервера» на вкладке «Главная».
Внизу появится новая вкладка. Нажмите кнопку «Очистить кэш», а затем кнопку «Выполнить», расположенную в стрелке раскрывающегося списка «Выполнить».
Вы можете видеть, что для выполнения запроса DAX Studio требуется 142 мс. Если вы удалите синтаксис START AT и снова запустите код, вы увидите, что его выполнение займет всего 11 мс.
Запрос выполняется дольше, если используется синтаксис START AT, поскольку он вызывает поведение механизма DAX, называемое CallBackDataID .
START AT делает ваш код чрезвычайно медленным. Если нет необходимости использовать его, лучше избегать его.
Это оказывает значительное влияние на общую производительность кода DAX, который вы пишете. Вот почему лучше всего использовать другие подобные функции.
Пример запроса DAX: функция TOPNSKIP
Следующее, чему вы научитесь в этом руководстве, это функция TOPNSKIP . Эта функция похожа на , но имеет одно тонкое отличие, а также дополнительный параметр. Чтобы лучше понять это, давайте рассмотрим пример.
TOPN против TOPNSKIP
Сначала напишите ключевое слово EVALUATE. Затем запишите аргумент TOPN ниже, чтобы просмотреть первые 100 строк таблицы продуктов.
Эта таблица также отсортирована по возрастанию столбца «Ключ продукта».
Теперь замените TOPN на TOPNSKIP. Во втором аргументе укажите количество строк, которые вы хотите пропустить. В этом примере указано 10.
Когда вы запустите это, вы увидите, что столбец «Ключ продукта» теперь начинается с 11 и заканчивается 110. Обратите внимание, что вы не можете использовать функцию TOPNSKIP внутри вычисляемой таблицы или в табличной модели данных.
Другой пример
В следующем примере давайте просмотрим первые 5000 строк в таблице клиентов. Эта таблица отсортирована в порядке возрастания по столбцу «Пол».
Если вы используете функцию TOPN, вы увидите, что таблица возвращает 9 518 строк. Это означает, что даже если вы указали показывать только первые 5000 строк, некоторые данные остались без фильтрации.
Однако, если вы используете функцию TOPNSKIP, вы увидите, что таблица возвращает только первые 5000 строк в столбце Пол.
Таким образом, даже если в столбце «Пол клиента» есть несколько правил для определенного пола, функция TOPNSKIP вернет только первые 5000 строк. Этот результат не гарантируется при использовании функции TOPN.
Пример запроса DAX: функция ADDMISSINGITEMS
Наконец, давайте рассмотрим функцию ADDMISSINGITEMS в DAX Studio.
Когда вы используете SUMMARIZECOLUMNS, по умолчанию он попытается удалить пустые строки из результата. Например, мы можем написать запрос, который обобщает цвет продуктов, бренд продуктов и пол клиента.
Когда вы нажмете F5, вы увидите, что таблица возвращает три столбца. Столбец «Пол» состоит из 3 типов пола: «Мужской», «Женский» и «Пустой». Бланк представляет Компанию. Вы также можете видеть, что он возвращает 333 строки.
Но если вы создадите столбец Total Sales, фильтр SUMMARIZECOLUMNS удалит строки, содержащие пустые значения для Total Sales. Вместо 333 строк таблица теперь содержит только 323 строки.
Есть 2 варианта вернуть эти строки. Первый вариант — добавить ноль после общего объема продаж. В результатах видно, что 10 строк возвращают нулевое значение для Total Sales.
Однако этот вариант не всегда дает наилучший результат. Вместо этого есть специальная функция, которую вы можете использовать для решения этой проблемы: функция ADDMISSINGITEMS .
Чтобы использовать эту функцию, поместите ее после EVALUATE. В первом аргументе напишите столбцы. Вам также необходимо вставить эти столбцы в параметр groupBy SUMMARIZECOLUMNS.
Когда вы запустите этот запрос, вы увидите, что теперь таблица возвращает 333 строки.
Если отсортировать столбцы «Общий объем продаж» и удалить ноль, таблица вернет пустые значения в столбце «Общий объем продаж».
Таким образом, вместо нулевого значения таблица возвращает пустое значение для строк, которые были удалены функцией СУММАРИЗОЛОН.
Использование ADDMISSINGITEMS И FILTER
Вы также можете использовать функцию ДОБАВИТЬЭЛЕМЕНТЫ вместе с . Например, давайте отфильтруем строки, содержащие «игрушки Tailspin». В запросе указано, что столбец «Бренд» не должен содержать ( <> ) игрушки Tailspin.
Когда вы нажмете F5, вы увидите, что теперь таблица возвращает только 331 строку. Таким образом, эти две строки, содержащие бренд «Tailspin Toys», были удалены.
Заключение
Два ключевых слова и две функции, обсуждаемые в этом руководстве, являются базовыми знаниями, которые вам необходимы при создании запросов в DAX Studio. Они пригодятся при работе с более сложными приложениями реального мира.
DAX Studio — это мощный инструмент для выполнения и анализа запросов DAX. Важно изучить основы кодирования этого программного обеспечения, чтобы в будущем вам было проще справляться со сложными запросами.
Эксперты LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.