Функція DAX COLUMNSTATISTICS у LuckyTemplates

Я хотів би продовжити вивчення динамічного використання функції DAX COLUMNSTATISTICS() – нової, майже повністю незадокументованої функції DAX, доданої до LuckyTemplates у серпні 2021 року, яка має деякі дуже унікальні аспекти, з якими, на мою думку, буде дуже цікаво познайомитися. Ви можете переглянути повне відео цього підручника внизу цього блогу.

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

Зміст

Як працює функція DAX COLUMNSTATISTICS

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

Функція DAX COLUMNSTATISTICS у LuckyTemplates

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

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

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

Отже, для цього прикладу давайте спробуємо додати таблицю до цієї моделі даних, над якою я працюю. У Power Query ми підемо New Source , а потім Blank Query . Потім ми зайдемо в розширений редактор і просто вставимо функцію під назвою List.Dates . Ми збираємося використати це, щоб створити таблицю потужності 10 000, тож це 10 000 унікальних дат.

Він поверне список із 10 000 елементів, і ми можемо просто перетворити його на таблицю, а потім перейменувати цю таблицю.

Ми можемо змінити поле тут до дати. І якщо ми натиснемо «Закрити та застосувати», ми побачимо, що наш інтелектуальний наратив оновлюватиметься динамічно, без необхідності оновлювати всю модель (як ми це робили в минулому).

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

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

Пам’ятайте, що запит DAX повертає таблиці, а не масштабувальники. Отже, якщо ми візьмемо цю міру і скопіюємо це в a, він показує помилку, оскільки результат тут все ще є масштабувальником. Ми можемо використати підхід до налагодження, замінивши цей результат RETURN окремими компонентами міри.

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

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

Спочатку ми виберемо стовпці в нашій таблиці ColStats і просто повернемо це поле імені таблиці. Як правило, у вимірюванні DAX або запиті DAX потрібно повернути ім’я поля з назвою таблиці перед ним. Але в цьому випадку ми не знаємо, на що посилається відповідна назва таблиці, оскільки вона існує лише віртуально. Здається, ім’я змінної не приймається як ім’я таблиці.

Тож у цьому випадку ми маємо залишитися на тому, що виглядає як міра, але насправді це посилання на стовпець без посилання на таблицю перед ним. І це все ще працює, хоча це заплутано в номенклатурі. Тепер, якщо ми замінимо цей оператор RETURN нашим TabCol , ми отримаємо саме те, що ми очікуємо, а саме це поле таблиці моделі.

А потім для результату ми просто підраховуємо окремі стовпці таблиці. Отже, якщо ми замінимо це на DISTINCT(TabsCol) , ми отримаємо наші сім таблиць.

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

Отже, давайте подивимося на MaxCardinality . Незважаючи на те, що це масштабувальник, ми можемо перетворити його на таблицю з однією коміркою, просто поставивши її в дужки. І якщо ми досягнемо п’яти, ми побачимо, що це кардинальність 10 000.

Тож питання полягає в тому, як ми візьмемо це та повернумо таблицю, пов’язану з цією потужністю.

Для цього ми використовуємо цей дуже поширений шаблон. Потім ми копіюємо його в наш оператор RETURN, і він дасть нам рядок, який ми очікували отримати, тобто стовпець 10 000 дат. Замість того, щоб отримати один рядок (оскільки це TOPN), ми отримуємо два, оскільки є нічия.

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

Отже, насправді неважливо, що ми маємо два рядки, тому що ми дивимося на максимальне значення імені таблиці. І цей максимум існує лише для того, щоб повернути певне значення, інакше це був би просто голий стовпець. Але нам потрібно застосувати деяке агрегування навколо цього, і в цьому випадку ми використовуємо.

Потім, якщо ми розмістимо MaxCardinality у нашому операторі RETURN і помістимо його в дужки, щоб повернути таблицю, а не масштабувальник, він поверне значення Test.

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




Висновок

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

Чим більше ми будемо експериментувати з функцією COLUMNSTATISTICS та її здатністю динамічно обробляти метадані в DAX, я думаю, що цікавіші застосування ми знайдемо. Отже, якщо ви вже знайшли кілька цікавих застосувань для цієї функції DAX, повідомте мені про це в коментарях нижче.

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

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

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