Функція 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 є зручним інструментом у сценаріях, коли потрібно об’єднати дані з кількох таблиць або створити список усіх можливих комбінацій.

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


Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!

Підсумки в LuckyTemplates за допомогою DAX

Підсумки в LuckyTemplates за допомогою DAX

Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.

Змінні LuckyTemplates Dax постійні: що це означає?

Змінні LuckyTemplates Dax постійні: що це означає?

Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.

Діаграма нахилу LuckyTemplates: огляд

Діаграма нахилу LuckyTemplates: огляд

Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.

Колірні теми LuckyTemplates для однорідної візуалізації

Колірні теми LuckyTemplates для однорідної візуалізації

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

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.

Візуальна карта LuckyTemplates: як створити та додати спеціальну легенду в LuckyTemplates

Візуальна карта LuckyTemplates: як створити та додати спеціальну легенду в LuckyTemplates

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

Фонове зображення LuckyTemplates для звітів із використанням PPT

Фонове зображення LuckyTemplates для звітів із використанням PPT

Дізнайтеся, як налаштувати фонове зображення LuckyTemplates за допомогою PowerPoint. Це одна з моїх технік створення звітів LuckyTemplates.

Модель та аналіз рішень щодо закупівель у LuckyTemplates

Модель та аналіз рішень щодо закупівель у LuckyTemplates

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