Що таке Power Query та мова M: детальний огляд
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
У цьому підручнику ви дізнаєтеся про різні ключові слова та функції в DAX Studio з конкретним прикладом запиту для кожного з них.
Зокрема, ви дізнаєтеся про ключові слова ORDER BY і START AT, а також про функції TOPNSKIP і ADDMISSINGITEMS.
Зміст
Приклад запиту DAX: ORDER BY Keyword
Ключове слово ORDER BY дозволяє сортувати набір даних.
Базовий приклад
Наприклад, використовуючи ключове слово ORDER BY, ви можете відсортувати стовпець за алфавітом.
Ви бачите, що дані першого рядка починаються з «А». Порядок сортування DAX Studio за замовчуванням є за зростанням .
Якщо ви хочете, щоб ваші дані відображалися в порядку спадання, напишіть DESC . Тож у цьому прикладі стовпець «Бренд» замість A починатиметься з «W».
Так само, якщо ви хочете повернути його до порядку зростання, напишіть ASC . Ви також можете сортувати кілька стовпців одночасно. Ви можете зробити це, написавши потрібні стовпці, розділивши їх комою.
Приклад реального світу
Тепер давайте розглянемо просту реальну програму з використанням ключового слова ORDER BY. Це той самий приклад, що використовується в .
Ви бачите, що ця таблиця повертає 3 стовпці. Перший — це тип продукту, який складається з Boring і Trendy. Другий стовпець показує загальний обсяг продажів за типом продукту. Третій повертає відсоток продажів.
У цьому прикладі вам потрібно створити новий стовпець, який сортує тип продукту. Отже, після оператора напишіть , а потім назву стовпця, який ви хочете створити.
Формула для цього стовпця така сама, як синтаксис IF, але замість «Модний» і «Нудний» у цьому стовпці відображатиметься «1» для «Модного» та «2» для нудного.
Щоб побачити цей стовпець у таблиці, запишіть його під синтаксисом EVALUATE.
Потім ви побачите, що до таблиці додано новий стовпець Product Type Sort, який складається з чисел 1 і 2.
Щоб відсортувати цей стовпець, напишіть ключове слово ORDER BY після синтаксису. Потім після назви стовпця напишіть або ASC, або DESC, залежно від порядку сортування, у якому ви хочете мати стовпець.
Приклад запиту DAX: START AT
Наступне, що ви дізнаєтесь, це ключове слово ПОЧАТИ З.
ПОЧАТИ З є застарілим ключовим словом. Його використання не рекомендується для більшості запитів DAX. Однак ви все одно можете знайти код DAX, який використовує це. Тому все ж важливо знати, що це таке і в яких випадках його можна використовувати.
Базовий приклад
Спочатку напишіть ключове слово EVALUATE. У цьому прикладі використовується таблиця Products. Перш ніж писати START AT, спочатку використовуйте ORDER BY , а потім укажіть стовпці, які ви хочете включити.
Потім ви можете написати START AT. Цей синтаксис буде відповідати порядку, подібному до того, як ви написали свої стовпці в ORDER BY. У цьому прикладі стовпець «Ключ продуктів» починатиметься з «2», а стовпець «Бренд» — із «Contoso».
Якщо натиснути клавішу F5, у таблиці результатів можна побачити, що вказані стовпці відповідають напрямку запиту.
Тепер давайте подивимося, що відбувається, коли додається ще один стовпець. У цьому випадку стовпець «Колір» має починатися зі «Срібло».
Коли ви запустите цей запит, ви побачите, що перший запис у стовпці «Колір» — «білий». Не гарантується, що результат завжди відповідатиме всім умовам під час використання START AT.
Для цього прикладу в таблиці Products немає екземпляра, який містить 2, Contoso та Silver у одному рядку. Натомість механізм DAX намагається створити найкращу відповідність створеному вами запиту.
Складний приклад
Давайте розглянемо інший приклад:
Після EVALUATE напишіть ключове слово ORDER BY, а потім три вказані стовпці. Після цього напишіть ПОЧАТОК З. У цьому випадку стовпець «Колір» має починатися з «Червоний», стовпець «Стать» має починатися з «M», а стовпець «Ключ магазину» має починатися з «2».
Після виконання запиту можна побачити, що механізм DAX зробив усе можливе, щоб відповідати вказаним параметрам.
У результатах можна побачити, що два стовпці правильні, тоді як стовпець Store Key починається зі 199 замість 2. Це тому, що Store Key 2 не існує в моделі даних цього прикладу.
Повільний двигун DAX
Натисніть кнопку «Час сервера» на вкладці «Домашня сторінка».
Внизу з’явиться нова вкладка. Натисніть кнопку «Очистити кеш», а потім «Виконати» , яка знаходиться у стрілці спадного меню «Виконати».
Ви бачите, що для виконання запиту DAX Studio потрібно 142 мс. Якщо видалити синтаксис START AT і запустити код знову, ви побачите, що це займе лише 11 мс для виконання.
Запит виконується довше, якщо є синтаксис START AT, оскільки він викликає поведінку механізму DAX під назвою CallBackDataID .
START AT робить ваш код надзвичайно повільним. Якщо використовувати його не потрібно, краще уникайте його.
Це значно впливає на загальну продуктивність коду DAX, який ви пишете. Ось чому краще використовувати інші подібні функції.
Приклад запиту DAX: функція TOPNSKIP
Наступне, про що ви дізнаєтесь у цьому посібнику, це функція TOPNSKIP . Ця функція схожа на, але він має одну тонку відмінність разом із додатковим параметром. Щоб краще зрозуміти це, розглянемо приклад.
TOPN проти TOPNSKIP
Спочатку напишіть ключове слово EVALUATE. Потім напишіть аргумент TOPN нижче, щоб переглянути 100 найкращих рядків таблиці продуктів.
Цю таблицю також відсортовано за зростанням стовпця «Ключ продукту».
Тепер замініть TOPN на TOPNSKIP. У другому аргументі вкажіть кількість рядків, які потрібно пропустити. У цьому прикладі вказано 10.
Коли ви запустите це, ви побачите, що стовпець «Ключ продукту» тепер починається з 11 і закінчується на 110. Зауважте, що ви не можете використовувати функцію TOPNSKIP всередині обчислюваної таблиці або в табличній моделі даних.
Інший приклад
У наступному прикладі давайте переглянемо 5000 найпопулярніших рядків у таблиці клієнтів. Ця таблиця відсортована в порядку зростання відносно стовпця Стать.
Якщо ви використовуєте функцію TOPN, ви можете побачити, що таблиця повертає 9518 рядків. Це означає, що навіть якщо ви вказали відображення лише перших 5000 рядків, деякі дані залишилися невідфільтрованими.
Однак якщо ви використовуєте функцію TOPNSKIP, ви можете побачити, що таблиця повертає лише перші 5000 рядків у стовпці Стать.
Таким чином, навіть якщо стовпець «Стать клієнта» містить кілька правил для певної статі, функція TOPNSKIP поверне лише перші 5000 рядків. Цей результат не гарантується під час використання функції TOPN.
Приклад запиту DAX: функція ADDMISSINGITEMS
Нарешті, давайте розглянемо функцію ADDMISSINGITEMS у DAX Studio.
Коли ви використовуєте SUMMARIZECOLUMNS, за замовчуванням він намагатиметься видалити порожні рядки з результату. Наприклад, ми можемо написати запит, який підсумовує Колір продукту, Бренд продукту та Стать клієнта.
Коли ви натискаєте F5, ви бачите, що таблиця повертає три стовпці. Стовпець «Стать» складається з 3 типів статі: чоловіча, жіноча та порожня. Бланк представляє компанію. Ви також можете побачити, що він повертає 333 рядки.
Але якщо ви створюєте стовпець «Загальні продажі», фільтр SUMMARIZECOLUMNS видалить рядки, які містять порожні значення для «Загальних продажів». Замість 333 рядків таблиця тепер містить лише 323 рядки.
Є 2 варіанти повернення цих рядків. Перший варіант – додати нуль після загальних продажів. У результатах ви можете побачити, що 10 рядків повертають нульове значення для Total Sales.
Однак цей варіант не завжди дає найкращий результат. Натомість існує спеціальна функція, яку можна використовувати для вирішення цієї проблеми: функція ADDMISSINGITEMS .
Щоб використовувати цю функцію, розмістіть це після EVALUATE. У першому аргументі запишіть стовпці. Вам також потрібно вставити ці стовпці в параметр groupBy SUMMARIZECOLUMNS.
Коли ви запустите цей запит, ви побачите, що таблиця повертає 333 рядки.
Якщо відсортувати стовпці «Загальний обсяг продажів» і видалити нуль, таблиця поверне порожні значення під стовпцем «Загальний обсяг продажів».
Таким чином, замість звіту про нуль, таблиця повертає порожні рядки, які були видалені функцією SUMMARIZECOLUMNS.
Використання ADDMISSINGITEMS і FILTER
Ви також можете використовувати функцію ADDMISSINGITEMS разом із. Наприклад, давайте відфільтруємо рядки, які містять «Tailspin Toys». У запиті сказано, що стовпець Brand не повинен містити ( <> ) Tailspin Toys.
Коли ви натискаєте F5, ви бачите, що таблиця тепер повертає лише 331 рядок. Тож ті два рядки, що містять бренд «Tailspin Toys», були видалені.
Висновок
Два ключові слова та дві функції, які обговорюються в цьому підручнику, є базовими знаннями, які потрібно мати під час створення запитів у DAX Studio. Вони стануть у нагоді під час роботи зі складнішими реальними програмами.
DAX Studio — це потужний інструмент для виконання та аналізу запитів DAX. Важливо вивчити основи кодування цього програмного забезпечення, щоб у майбутньому вам було легше працювати зі складними запитами.
Експерти LuckyTemplates
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
Дізнайтеся, як створити звіт із розбивкою на сторінки, додати тексти та зображення, а потім експортувати звіт у різні формати документів.
Дізнайтеся, як використовувати функцію автоматизації SharePoint для створення робочих процесів і допомоги в мікрокеруванні користувачами, бібліотеками та списками SharePoint.
Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!
Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.
Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.
Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.
Відкрийте для себе кольорові теми в LuckyTemplates. Це необхідно для того, щоб ваші звіти та візуалізації виглядали та працювали без проблем.
Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.
Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.