Функція CROSSJOIN DAX: таймінг сервера та план запитів

У цьому посібнику ви дізнаєтеся, якфункція працює в DAX за допомогою панелі «Таймінг сервера» та її плану запитів.

Функцію CROSSJOIN можна використовувати для створення декартового добутку двох таблиць. Декартовий добуток - це набір усіх можливих комбінацій рядків з двох або більше таблиць.

Нижче буде використано в цьому підручнику.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Ви бачите, що функція CROSSJOIN призводить до поєднання бренду продукту та кольору, навіть якщо деякі з цих комбінацій не існують у . У результаті виходить таблиця із 176 рядками.

На вкладці «Час сервера» перший запит отримує бренд із таблиці «Продукція», тоді як другий запит отримує колір.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Перший рядок повертає результат у вигляді таблиці. Другий і третій рядки в таблиці продуктів сканують колір і бренд відповідно.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Після отримання даних Formula Engine виконує ітерацію по таблиці та створює комбінацію обох стовпців. CrossApply у рядку 2 відповідає функції CROSSJOIN.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Зміст

Фільтрувати результати CROSSJOIN у DAX

Ви можете використовуватифункція для фільтрації результатів CROSSJOIN. Наприклад, ви можете використовувати його, щоб показувати лише продукти червоного кольору.

Однак пам’ятайте, що ви не можете розмістити функцію CROSSJOIN в аргументі FILTER .

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Тепер, якщо ви запустите цей код і перевірите вкладку Server Timings, ви побачите, що контекст фільтра не відображається як речення WHERE у запиті.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Функцію CROSSJOIN можна вирішити лише за допомогою . Код не працює, оскільки він міститься між FILTER і функціями, які можна вирішити лише за допомогою . Таким чином, CROSSJOIN призвело до розриву циклу між цими двома функціями.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Тому вам потрібно розмістити функцію FILTER в аргументі CROSSJOIN, щоб фільтр працював.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Тепер, якщо ви запустите цей код і перевірите вкладку Server Timings, ви побачите, що функція FILTER тепер представлена ​​пропозицією WHERE.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

У плані логічного запиту можна побачити, що замість оператора фільтра використовується фільтр VertiPaq .

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Це пояснюється тим, що нову умову фільтра в коді можна передати в Storage Engine. Після повернення результату в механізмі формул виконується аргумент CROSSJOIN.

Оператор IN

Ви також можете використовуватизамість знака рівності в аргументі FILTER.

Оператор IN можна використовувати в аргументі виразу функції FILTER, щоб фільтрувати таблицю на основі того, чи міститься значення в списку значень чи всередині таблиці.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Коли ви використовуєте комбінацію FILTER – IN , механізм DAX має виконати фільтр IsEmpty , який підтверджує, чи є колір продукту червоним чи чорним.

Додайте стовпець «Загальні продажі» в результат CROSSJOIN DAX

Інші функції також можна використовувати разом із CROSSJOIN.

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

У цьому прикладі давайте додамо стовпець «Загальні продажі».

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Коли ви запускаєте код, результати все одно повертатимуть 176 рядків. Однак деякі комбінації матимуть порожні значення в стовпці «Загальні продажі». Це тому, що ці комбінації не мають відповідного рядка в таблиці «Продажі».

Функція CROSSJOIN DAX: таймінг сервера та план запитів

На вкладці «Час сервера» код спочатку вибирає бренд і колір. Потім підсумовується добуток кількості та чистої ціни продажу.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

У цьому випадку механізм DAX спочатку отримує всі комбінації бренду та кольору, які існують у таблиці Products, а також ті, що мають відповідний рядок у таблиці Sales. Потім окремо отримує стовпці бренду та кольору.

У плані фізичного запиту ви можете побачити два кеші даних; один для марки, а інший для кольору. Коли ви помножите їхні загальні записи, ви отримаєте 176 рядків.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Потім у цих 176 рядках виконується пошук, щоб побачити, чи мають вони відповідне значення в таблиці Sales. Ви бачите, що лише 111 рядків мають значення. Інші 65 рядків повертатимуть порожні значення.

Крім того, якщо ви додасте більше стовпців в аргумент CROSSJOIN, результат також поверне більше рядків.

Функція CROSSJOIN DAX: таймінг сервера та план запитів

Висновок

Функція DAX CROSSJOIN створює нову таблицю, поєднуючи рядки з однієї таблиці з рядками з іншої. Ця функція подібна до пропозиції CROSS JOIN у SQL і може використовуватися для створення складніших запитів у вашій моделі даних.

Він може створити список усіх можливих комбінацій значень з двох або більше таблиць. Його також можна використовувати для швидкого створення нової таблиці з великою кількістю рядків, що може бути корисним для аналізу даних, тестування або порівняльного аналізу продуктивності.

Загалом функція CROSSJOIN є зручним інструментом у сценаріях, коли потрібно об’єднати дані з кількох таблиць або створити список усіх можливих комбінацій.

Все найкраще,

Leave a Comment

Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.