Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
В этом руководстве вы узнаете, как функция работает в DAX, используя панель Server Timings и ее план запроса.
Функция CROSSJOIN может использоваться для создания декартова произведения двух таблиц. Декартово произведение — это множество всех возможных комбинаций строк из двух или более таблиц.
Приведенный ниже код DAX будет использоваться в этом руководстве.
Вы можете видеть, что функция ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ приводит к комбинации Марки и Цвета продукта, даже если некоторые из этих комбинаций не существуют в таблице фактов . В результате получается таблица, содержащая в общей сложности 176 строк.
На вкладке «Время сервера» первый запрос извлекает марку из таблицы «Продукты», тогда как второй запрос извлекает цвет.
В Logical Query Plan первая строка возвращает результат в виде таблицы. Вторая и третья строки в таблице товаров сканируют цвет и марку соответственно.
После получения данных обработчик формул выполняет итерацию по таблице и создает комбинацию обоих столбцов. CrossApply в строке 2 соответствует функции CROSSJOIN.
Оглавление
Фильтрация результатов CROSSJOIN в DAX
Вы можете использовать функцию для фильтрации результатов CROSSJOIN. Например, вы можете использовать его, чтобы показывать только товары с красным цветом.
Однако помните, что вы не можете поместить функцию CROSSJOIN в аргумент FILTER .
Теперь, если вы запустите этот код и проверите вкладку Server Timings, вы увидите, что контекст фильтра не отображается как предложение WHERE в запросе.
Функция CROSSJOIN может быть разрешена только модулем Formula Engine . Код не работает, так как он находится между FILTER и , которые являются функциями, которые могут быть разрешены только механизмом хранения . Таким образом, CROSSJOIN вызвал разрыв цикла между этими двумя функциями.
Поэтому вам нужно поместить функцию FILTER в аргумент CROSSJOIN, чтобы фильтр работал.
Теперь, если вы запустите этот код и проверите вкладку Server Timings, вы увидите, что функция FILTER теперь представлена предложением WHERE.
В плане логического запроса видно, что вместо оператора фильтра используется фильтр VertiPaq .
Это связано с тем, что новое условие фильтра в коде может быть передано в подсистему хранения. После возврата результата аргумент CROSSJOIN выполняется внутри механизма формул.
Оператор IN
Вы также можете использовать оператор вместо знака равенства в аргументе FILTER.
Оператор IN можно использовать в аргументе выражения функции FILTER для фильтрации таблицы на основе того, содержится ли значение в списке значений или в таблице.
Когда вы используете комбинацию FILTER — IN , механизм DAX должен выполнить фильтр IsEmpty , который подтверждает, является ли цвет продукта красным или черным.
Добавить столбец «Общий объем продаж» в результат CROSSJOIN DAX
Вместе с CROSSJOIN можно использовать и другие функции.
Вы можете использовать функцию , чтобы добавить еще один столбец в вашу таблицу, а затем записать аргумент информации, которую вы хотите отобразить.
В этом примере давайте добавим столбец Total Sales.
Когда вы запустите код, результаты все равно вернут 176 строк. Однако некоторые комбинации будут иметь пустые значения в столбце «Общий объем продаж». Это связано с тем, что для этих комбинаций нет соответствующей строки в таблице "Продажи".
На вкладке Server Timings код сначала выбирает марку и цвет. Затем он суммирует произведение количества и чистой цены продажи.
В этом случае механизм DAX сначала извлекает все комбинации марки и цвета, существующие в таблице «Продукты», а также комбинации с соответствующей строкой в таблице «Продажи». Затем он извлекает столбцы марки и цвета отдельно.
В плане физического запроса вы можете увидеть два кеша данных; один для бренда, а другой для цвета. Когда вы умножаете их общее количество записей, вы получаете 176 строк.
Затем выполняется поиск по этим 176 строкам, чтобы увидеть, есть ли у них соответствующее значение в таблице «Продажи». Вы можете видеть, что только 111 строк имеют значения. Остальные 65 строк вернут пробелы.
Более того, если вы добавите больше столбцов в аргумент CROSSJOIN, результат также вернет больше строк.
Заключение
Функция DAX CROSSJOIN создает новую таблицу, объединяя строки из одной таблицы со строками из другой. Эта функция аналогична предложению CROSS JOIN в SQL и может использоваться для создания более сложных запросов в вашей модели данных.
Он может генерировать список всех возможных комбинаций значений из двух или более таблиц. Его также можно использовать для быстрого создания новой таблицы с большим количеством строк, что может быть полезно для анализа данных, тестирования или сравнительного анализа производительности.
В целом, функция CROSSJOIN — удобный инструмент в сценариях, где вам нужно объединить данные из нескольких таблиц или создать список всех возможных комбинаций.
Всего наилучшего,
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.