Як змінити типи об’єднання в Power BI та Power Query

Приєднання таблиць - це не нова концепція, я впевнений, що всі читачі мого щоденника щонайменше знають про це. Однак існують різні типи об’єднань, і застосування цих типів об’єднань не все можливо через графічний інтерфейс Power Query. Нещодавно Power BI зробив крок і застосував це в графічному інтерфейсі, однак ви можете знати, як застосувати це в Power Query. Фокус у тому, що М - твій друг. За сценарієм М ти можеш робити все, що хочеш.

змінити

Я не хочу детально пояснювати тут кожен тип об’єднання. Малюнок внизу це чудово ілюструє;

Тепер давайте подивимося, як використовувати об’єднання через Power BI та Power Query;

У Power BI Desktop ви можете об'єднати дві таблиці за допомогою пункту "Об'єднати" в редакторі запитів, на вкладці "Домашня сторінка" в розділі "Об'єднати", "Об'єднати запити".

З'явиться вікно злиття з можливістю вибору першої таблиці (ліва частина об'єднання) та другої таблиці (права частина об'єднання). Ви можете вибрати стовпці, в яких ви хочете брати участь, як ключ об’єднання в межах замовлення (ви можете вибрати кілька стовпців за допомогою клавіші Ctrl). І є тип приєднання, який ви можете вибрати.

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

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

Виберіть стовпці, як показано нижче:

Ви також можете вибрати один із інших типів об’єднання, як зазначено нижче:

  • Зліва зовні (все з першого, співпадаюче з другого): ця опція була поведінкою за замовчуванням раніше в діалоговому вікні злиття
  • Права зовнішня (все з другої, відповідність з першої)
  • Повна зовнішня (всі рядки з обох)
  • Внутрішня (лише відповідні рядки); ця опція була доступна раніше через опцію «Вибрати лише відповідні рядки» у діалоговому вікні «Об’єднання»
  • Лівий Анти (рядки лише в першому)
  • Права Анти (рядки лише в секунді)

На момент написання цього допису в блозі Power Query Editor (GUI) підтримує лише два типи об’єднань, згаданих вище: Left Join та Inner Join.

Вам слід пройти той самий шлях через злиття запитів, і тоді ви побачите варіанти приєднання, як показано нижче:

Як бачите, поведінка за замовчуванням - ліве приєднання Ви можете змінити його на внутрішнє приєднання, вибравши "Включити лише відповідні рядки".

Змінюйтесь через М

Ви можете застосувати будь-який потрібний тип об’єднання, просто перейшовши в розширений редактор та змінивши сценарій M, як показано нижче:

Перейдіть на вкладку Перегляд і натисніть Розширений редактор:

У вікні запиту Advanced Editor ви можете побачити сценарій M, який створює набір результатів. Знайдіть функцію приєднання та змініть JoinKind.

JoinKind - це тип перерахування, який може мати значення нижче:

  • JoinKind.Inner = 0
  • JoinKind.LeftOuter = 1
  • JoinKind.RightOuter = 2
  • JoinKind.FullOuter = 3
  • JoinKind.LeftAnti = 4
  • JoinKind.RightAnti = 5

Тож ви можете просто змінити його як завгодно.

Я вважаю, що ця функція найближчим часом буде доступна і в графічному інтерфейсі Power Query Editor, але до цього часу, як сподіваємось, наведений вище опис допоможе вам у будь-якій ситуації, коли ви хочете встановити тип об’єднання.

Відео

Схожі повідомлення:

8 думок на тему “Як змінити типи об’єднання в Power BI та Power Query”

Привіт Реза, це приємно, але чи є спосіб, як виконати деякі інші приєднання? Я маю на увазі приєднання з такими умовами, як ЛАЙК, або МІЖ? Дякую тобі, Леа

Спасибі,
На жаль, з’єднання Not-Equi (з такими умовами, як, наприклад, між ....) не підтримуються в існуючих функціях. Це має бути написано на замовлення. Сподіваємось, це з’являється на певному етапі як вбудовані функції.

Дякую, ти мені не сподобався: o) Чи знаєш ти джерело інформації, де я міг це знайти? Приклад буде чудовим.

Я не знайшов жодного посилання, яке реалізувало б нерівне об’єднання з Power Query. Суть, про яку я [намагався] сказати, полягає в тому, що: оскільки це не нестандартна функція чи функція, її слід писати вручну. На даний момент, на жаль, я зайнятий і не маю часу на розвиток такої функції. Однак я можу направити вас у правильному напрямку;
- як: для приєднання на основі подібного, ви можете відфільтрувати другу таблицю на основі записів, що їхній ключ приєднання схожий на один із записів у першій таблиці. потім перехресне з'єднання першого запису першої таблиці з кожним записом другої відфільтрованої таблиці. тоді зробіть це для другого запису першої таблиці ... . до кінця.
- між: для приєднання на основі між, ви можете відфільтрувати другу таблицю на основі записів, що їх ключ приєднання МІЖ значеннями, згаданими в першому записі першої таблиці, потім перехресне приєднання, як зазначено вище.
Ці два методи - це лише те, що мені зараз спадає на думку, це, безумовно, не найкраще рішення для цього, але воно має бути дієвим. Ви також можете знайти інші методи, я вважаю.

Привіт Реза,
велике спасибі за вашу відповідь. Я спробую запропонований вами спосіб і продовжую шукати якесь інше рішення. "М" може допомогти, можливо. Цікаво, що багато інструментів BI дозволяють лише зробити (я маю на увазі простий спосіб) об’єднання “=”, і лише одне, яке я знайшов на сьогоднішній день, дозволяє вам комфортно виконувати будь-яке об’єднання, яке вам потрібно.
Ура,
Леа

М, безумовно, допомагає. Повідомте мене, якщо у вас виникнуть запитання.
Ура,
Реза

Чи можемо ми додавати власні запити для Приєднання в Power BI. Якщо так, то як ми можемо це зробити.

Привіт.
Ви маєте на увазі власні запити SQL? так, ви можете вставити свій SQL-запит в Отримати дані із SQL Server, у розширеному режимі в текстовому полі
Ура
Реза