Запити DAX із використанням змінних і важливих функцій

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

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

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

Зміст

Створюйте запити DAX за допомогою CALCULATE і FILTER

Існують різні методи отримання результатів і відповідей у ​​DAX. Вам потрібно виробити власний стиль і плавність у створенні звіту, щоб вам було комфортно з тим, над чим ви працюєте. Навіть якщо у вас є власний стиль, ви все одно повинні дотримуватися конкретних вказівок, які включають використання CALCULATE замість різних методів, таких як FILTER .

FILTER може надсилати багато нестиснених даних до механізму формул і потенційно може ініціювати CallBackDataID . Тут будуть використані міри, щоб показати результати CALCULATE і FILTER . Це також має визначену міру, яка є локальною для запиту. Визначені показники не можна знайти в моделі даних, але вони можуть швидше розробляти та усувати ваші коди.

Запити DAX із використанням змінних і важливих функцій

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

Наступний захід - використаннявсередині. Якщо ви згадаєте з модуля CallBackDataID , використання IF у функції SUMX створить CallBackDataID .

Запити DAX із використанням змінних і важливих функцій

Цей захід фільтрує всю таблицю Fact Sales. Він видаляє фільтри, що надходять із таблиці дат.

Запити DAX із використанням змінних і важливих функцій

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

Ця мірка така ж, як і попередня; єдина відмінність полягає в тому, що він не фільтрує всю таблицю. Він використовує SUMX лише для ітерації відфільтрованої таблиці.

Запити DAX із використанням змінних і важливих функцій

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

Запити DAX із використанням змінних і важливих функцій

Останнім заходом є використання CALCULATE і моделі даних для фільтрації та отримання даних.

Запити DAX із використанням змінних і важливих функцій

Запустіть і перевірте кожен захід

Спочатку виконайте вимірювання IF . Обов’язково очистіть кеш-пам’ять, перш ніж запускати запит, і ввімкніть часові параметри сервера та план запитів.

Запити DAX із використанням змінних і важливих функцій

Запити DAX із використанням змінних і важливих функцій

Хоча він надає правильні дані, продуктивність повільна через CallBackDataID і 3 тривалості.

Якщо ви запустите міру, яка фільтрує всю таблицю Fact Sales, ви все одно зможете побачити CallBackDataID . Він також створить 15 003 рядки та надасть неправильні результати.

Запити DAX із використанням змінних і важливих функцій

Запити DAX із використанням змінних і важливих функцій

Якщо ви запустите міру, яка не фільтрує всю таблицю Fact Sales, ви отримаєте правильні результати. Однак ви все одно побачите CallBackDataID і матеріалізовані 15 003 рядки, але матимете лише 7 рядків виводу.

Запити DAX із використанням змінних і важливих функцій

Запити DAX із використанням змінних і важливих функцій

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

Запити DAX із використанням змінних і важливих функцій

Запити DAX із використанням змінних і важливих функцій

Виконайте вимірювання CALCULATE . Ви бачите, що він матеріалізував лише 10 рядків і згенерував правильні дані за 5 мілісекунд.

Запити DAX із використанням змінних і важливих функцій

Запити DAX із використанням змінних і важливих функцій

Це найшвидший серед усіх заходів, наведених вище, оскільки він не має і витягнув лише 10 рядків. Це показує, наскільки вражаючим є CALCULATE в отриманні швидких і точних результатів.

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

Запити DAX із використанням змінних і важливих функцій

Запити DAX із використанням змінних і важливих функцій

Висновок

Перемістивши фільтри на CALCULATE, ви заощадите час і матеріалізацію, оскільки CallBackDataID буде усунено. Вам не доведеться повторювати дані двічі. Це також максимізує продуктивність вашого DAX і допоможе покращити ваші навички розробки.


Труба в R: підключення функцій за допомогою Dplyr

Труба в R: підключення функцій за допомогою Dplyr

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

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX Deep Dive: функція LuckyTemplates DAX

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

Вилучення тем і зображень LuckyTemplates із PBIX

Вилучення тем і зображень LuckyTemplates із PBIX

Дізнайтеся, як розібрати файл PBIX, щоб витягти теми та зображення LuckyTemplates із фону та використовувати їх для створення звіту!

Шпаргалка формул Excel: Посібник середнього рівня

Шпаргалка формул Excel: Посібник середнього рівня

Шпаргалка формул Excel: Посібник середнього рівня

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Python у LuckyTemplates: як встановити та налаштувати

Python у LuckyTemplates: як встановити та налаштувати

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

Розрахунок динамічної норми прибутку – легкий аналіз LuckyTemplates за допомогою DAX

Розрахунок динамічної норми прибутку – легкий аналіз LuckyTemplates за допомогою DAX

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

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

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

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

Знайдіть свої найкращі продукти для кожного регіону в LuckyTemplates за допомогою DAX

Знайдіть свої найкращі продукти для кожного регіону в LuckyTemplates за допомогою DAX

У цій статті я поясню, як знайти найпопулярніші продукти для регіону за допомогою обчислень DAX у LuckyTemplates, включаючи функції TOPN і CALCULATE.

Вимір сміття: що це таке і чому це щось інше, але не сміття

Вимір сміття: що це таке і чому це щось інше, але не сміття

Дізнайтеся, як використовувати вимірювання сміття для позначок низької потужності, які ви хочете ефективно включити у свою модель даних.