Rodzaje sprzężeń w Power Query

Pobierz pliki do ćwiczeń

W poprzednim wpisie dotyczącym PowerQuery omówiłem, jak połączyć dane z dwóch tabel. Ponieważ chcieliśmy wygenerować tabelę z danymi, które znajdują się w pierwszej (lewej) tabeli a nie znajdują się w drugiej (prawej) kazałem użyć sprzężenia Anty lewe. W tym wpisie omówię rodzaje sprzężeń dostępne w PowerQuery (jeśli miałeś do czynienia z bazami danych to zapewne nie obce Ci są słowa kluczowe takie jak np. JOIN, LEFT JOIN, RIGHT JOIN itp.)

Rozważmy taką sytuację: mamy dwie tabele tak jak na poniższym rysunku. W bazach danych jako lewą tabelę się określa tę tabelę, która jako pierwsza występuje w zapytaniu a jako prawą określa się tę, która jako druga występuje w zapytaniu. Za chwilę stworzę 6 scaleń (bo w Power Query tyle jest rodzajów sprzężeń). Zawsze jako pierwszą tabelę będę wybierał Wydawnictwo a jako prawą Gatunek.

Zanim jednak przystąpimy do działania musimy zaimportować te dwie tabele. W tym celu należy wykonać następujące czynności:

  1. Uruchom program MS Excel
  2. Z karty Dane wybierz Z pliku tekstowego/CSV
  1. Wskaż plik Wydawnictwa.csv
  2. Pojawi się nowe okno dialogowe. W polu Pochodzenie pliku wybierz 65001 Unicode (UTF-8) natomiast w polu Ogranicznik wybierz Średnik a następnie kliknij w przycisk Załaduj
  3. Dane zostaną zaimportowane do nowego Arkusza o nazwie Wydawnictwa (bo taką nazwę miał importowany przez nas plik CSV)
  4. W podobny sposób zaimportuj dane z pliku Gatunki.csv

Teraz przećwiczmy wszystkie 6 typów sprzężeń. To ćwiczenie wykonamy 6 razy wykonując te same czynności, w punkcie 3 za każdym razem będziemy wybierali kolejne sprzężenie. W tym celu należy wykonać następujące czynności:

  1. Na karcie Dane wybierz polecenie Pobierz dane -> Połącz zapytania -> Scal
  1. Pojawi się okno dialogowe Scalanie. Jako pierwszą tabelę wybierz Wydawnictwa natomiast jako drugą tabelę wybierz Gatunki. W obu tabelach kliknij w kolumnę id_książki (jest ona kluczem wyszukiwania pomiędzy oboma tabelami)
  2. Jako rodzaj sprzężenia będziemy wybierali po kolei inny typ sprzężenia. Na początku wybierzmy złączenie Lewe zewnętrzne.
  1. Kliknij w przycisk OK
  2. Włączy się edytor Power Query. W kolumnie Gatunki kliknij w przycisk z dwiema strzałeczkami, aby wskazać jakie kolumny mają być wyświetlane z tabeli Gatunki i odznacz kolumnę id_ksiazki (ma być zaznaczona tylko kolumna Gatunek)
  1. Po prawej stronie w panelu Ustawienia zapytania zmień nazwę zapytania ze Scalanie1 na Lewe zewnętrzne
  1. Kliknij w przycisk Zamknij i załaduj znajdujący się w lewym górnym rogu okna dialogowego Edytor PowerQuery
  2. Dane zostaną załadowane do nowego arkusza.

Omówmy teraz wszystkie 6 sprzężeń

Lewe zewnętrzne (wszystkie z pierwszej, pasujące z drugiej)

Zostały tutaj załadowane wszystkie rekordy (wiersze) występujące w Lewej (pierwszej) tabeli (Wydawnictwo). Zwróć uwagę na fakt, że w tabeli Gatunki nie występuje wydawnictwo o id_ksiazki=4 dlatego w kolumnie Gatunek pojawiła się wartość null. Zauważ, że w tabeli Gatunki są id_książki, które nie istnieją w pierwsze tabeli (Wydawnictwo) tj. Poezja i Reportaż. Te rekordy nie zostały załadowane.

Prawe zewnętrzne (Wszystkie z drugiej, pasujące z pierwszej)

Tutaj mamy sytuację odwrotną tj. zostały załadowane wszystkie rekordy (Gatunki) znajdujące się w drugiej (prawej) tabeli.

Pełne zewnętrzne (wszystkie wiersze z obydwu)

Tutaj zostały załadowane wszystkie rekordy z obydwu tabel. Jeśli dane ID występuje tylko w jednej tabeli to część kolumn ma wartość null.

Wewnętrzne (tylko pasujące wiersze)

W tym przypadku zostały załadowane tylko te rekordy, gdzie dane id_ksiazki występuje w obu tabelach.

Lewe anty (wiersze tylko z pierwszej)

W tym przypadku zostały załadowane tylko te rekordy, dla których id_ksiazki istnieje w pierwszej (lewej) tabeli, ale nie istnieje w drugiej (prawej) tabeli.

Prawe anty (wiersze tylko z drugiej)

Tutaj zostały załadowane tylko te rekordy, dla których id_ksiazki istnieje w drugiej tabeli (prawej), a nie istnieje w pierwszej (lewej) tabeli.

Ten wpis został opublikowany w kategorii Power Query i oznaczony tagami , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.