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

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

В частности, вы узнаете о ключевых словах ORDER BY и START AT, а также о функциях TOPNSKIP и ADDMISSINGITEMS.

Оглавление

Пример запроса DAX: ORDER BY по ключевому слову

Ключевое слово ORDER BY позволяет сортировать набор данных.

Основной пример

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

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

Вы можете видеть, что данные первой строки начинаются с «A». Порядок сортировки по умолчанию в DAX Studio — возрастающий .

Если вы хотите, чтобы ваши данные отображались в порядке убывания, напишите DESC . Таким образом, в этом примере вместо буквы «А» столбец «Бренд» будет начинаться с буквы «W».

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

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

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

Пример из реальной жизни

Теперь давайте рассмотрим простое реальное приложение, использующее ключевое слово ORDER BY. Это тот же пример, который использовался в учебнике по ключевым словам TABLE .

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

Вы можете видеть, что эта таблица возвращает 3 столбца. Первый — это тип продукта, состоящий из скучных и модных. Второй столбец показывает общий объем продаж по типу продукта. Третий возвращает процент от продаж.

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

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

Формула для этого столбца такая же, как синтаксис IF, но вместо «Модный» и «Скучный» в этом столбце будет отображаться «1» для Модного и «2» для Скучного.

Чтобы увидеть этот столбец в таблице, запишите его в синтаксисе EVALUATE.

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

Затем вы увидите, что в таблицу, состоящую из чисел 1 и 2, добавлен новый столбец «Сортировка по типу продукта».

Чтобы отсортировать этот столбец, напишите ключевое слово ORDER BY после синтаксиса . Затем после имени столбца напишите ASC или DESC в зависимости от порядка сортировки, который вы хотите использовать для столбца.

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

Пример запроса DAX: START AT

Следующее, что вы узнаете, это ключевое слово START AT .

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

Основной пример

Сначала напишите ключевое слово EVALUATE. В этом примере используется таблица Products. Прежде чем написать START AT, сначала используйте ORDER BY , а затем укажите столбцы, которые вы хотите включить.

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


Затем вы можете написать START AT. Этот синтаксис будет следовать порядку, аналогичному тому, как вы написали свои столбцы в ORDER BY. В этом примере столбец «Ключ продукта» будет начинаться с «2», а столбец «Бренд» — с «Contoso».

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

Когда вы нажмете F5, вы увидите в таблице результатов, что указанные столбцы следуют направлению запроса.

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

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

Когда вы запустите этот запрос, вы увидите, что первая запись в столбце «Цвет» — «белая». Не гарантируется, что результат всегда будет соответствовать всем условиям при использовании START AT.

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

Сложный пример

Давайте посмотрим на другой пример:

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

После EVALUATE напишите ключевое слово ORDER BY, за которым следуют три указанных столбца. После этого напишите START AT. В этом случае столбец «Цвет» должен начинаться с «Красный», столбец «Пол» должен начинаться с «М», а столбец «Ключ магазина» должен начинаться с «2».

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

После выполнения запроса вы увидите, что механизм DAX изо всех сил старался соответствовать указанным параметрам.

В результатах вы можете видеть, что два столбца верны, а столбец Store Key начинается со 199 вместо 2. Это связано с тем, что Store Key со значением 2 не существует в модели данных этого примера.

Медленный двигатель DAX

Нажмите кнопку «Время сервера» на вкладке «Главная».

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

Внизу появится новая вкладка. Нажмите кнопку «Очистить кэш», а затем кнопку «Выполнить», расположенную в стрелке раскрывающегося списка «Выполнить».

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

Вы можете видеть, что для выполнения запроса DAX Studio требуется 142 мс. Если вы удалите синтаксис START AT и снова запустите код, вы увидите, что его выполнение займет всего 11 мс.

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

Запрос выполняется дольше, если используется синтаксис START AT, поскольку он вызывает поведение механизма DAX, называемое CallBackDataID .

START AT делает ваш код чрезвычайно медленным. Если нет необходимости использовать его, лучше избегать его.

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

Пример запроса DAX: функция TOPNSKIP

Следующее, чему вы научитесь в этом руководстве, это функция TOPNSKIP . Эта функция похожа на , но имеет одно тонкое отличие, а также дополнительный параметр. Чтобы лучше понять это, давайте рассмотрим пример.

TOPN против TOPNSKIP

Сначала напишите ключевое слово EVALUATE. Затем запишите аргумент TOPN ниже, чтобы просмотреть первые 100 строк таблицы продуктов.

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

Эта таблица также отсортирована по возрастанию столбца «Ключ продукта».

Теперь замените TOPN на TOPNSKIP. Во втором аргументе укажите количество строк, которые вы хотите пропустить. В этом примере указано 10.

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

Когда вы запустите это, вы увидите, что столбец «Ключ продукта» теперь начинается с 11 и заканчивается 110. Обратите внимание, что вы не можете использовать функцию TOPNSKIP внутри вычисляемой таблицы или в табличной модели данных.

Другой пример

В следующем примере давайте просмотрим первые 5000 строк в таблице клиентов. Эта таблица отсортирована в порядке возрастания по столбцу «Пол».

Если вы используете функцию TOPN, вы увидите, что таблица возвращает 9 518 строк. Это означает, что даже если вы указали показывать только первые 5000 строк, некоторые данные остались без фильтрации.

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

Однако, если вы используете функцию TOPNSKIP, вы увидите, что таблица возвращает только первые 5000 строк в столбце Пол.

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

Таким образом, даже если в столбце «Пол клиента» есть несколько правил для определенного пола, функция TOPNSKIP вернет только первые 5000 строк. Этот результат не гарантируется при использовании функции TOPN.

Пример запроса DAX: функция ADDMISSINGITEMS

Наконец, давайте рассмотрим функцию ADDMISSINGITEMS в DAX Studio.

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

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

Когда вы нажмете F5, вы увидите, что таблица возвращает три столбца. Столбец «Пол» состоит из 3 типов пола: «Мужской», «Женский» и «Пустой». Бланк представляет Компанию. Вы также можете видеть, что он возвращает 333 строки.

Но если вы создадите столбец Total Sales, фильтр SUMMARIZECOLUMNS удалит строки, содержащие пустые значения для Total Sales. Вместо 333 строк таблица теперь содержит только 323 строки.

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

Есть 2 варианта вернуть эти строки. Первый вариант — добавить ноль после общего объема продаж. В результатах видно, что 10 строк возвращают нулевое значение для Total Sales.

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

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

Чтобы использовать эту функцию, поместите ее после EVALUATE. В первом аргументе напишите столбцы. Вам также необходимо вставить эти столбцы в параметр groupBy SUMMARIZECOLUMNS.

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

Когда вы запустите этот запрос, вы увидите, что теперь таблица возвращает 333 строки.

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

Если отсортировать столбцы «Общий объем продаж» и удалить ноль, таблица вернет пустые значения в столбце «Общий объем продаж».

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

Таким образом, вместо нулевого значения таблица возвращает пустое значение для строк, которые были удалены функцией СУММАРИЗОЛОН.

Использование ADDMISSINGITEMS И FILTER

Вы также можете использовать функцию ДОБАВИТЬЭЛЕМЕНТЫ вместе с . Например, давайте отфильтруем строки, содержащие «игрушки Tailspin». В запросе указано, что столбец «Бренд» не должен содержать ( <> ) игрушки Tailspin.

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

Когда вы нажмете F5, вы увидите, что теперь таблица возвращает только 331 строку. Таким образом, эти две строки, содержащие бренд «Tailspin Toys», были удалены.

Заключение

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

DAX Studio — это мощный инструмент для выполнения и анализа запросов DAX. Важно изучить основы кодирования этого программного обеспечения, чтобы в будущем вам было проще справляться со сложными запросами.

Эксперты LuckyTemplates

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 для своих бизнес-отчетов.