Narzędzia
Portfolio Roadmapa Słownik Blog Portal dla BA
← Słownik
Dane i BI

JOIN (złączenie)

JOIN (złączenie) to operacja SQL łącząca wiersze z dwóch lub więcej tabel na podstawie warunku - najczęściej równości kluczy.

JOIN (złączenie) to operacja SQL łącząca wiersze z dwóch lub więcej tabel na podstawie warunku - najczęściej równości kluczy. Główne rodzaje: INNER (tylko dopasowane pary), LEFT/RIGHT (wszystko z jednej strony plus dopasowania z drugiej), FULL OUTER (wszystko z obu stron) i CROSS (każdy z każdym).

Analityk bez JOIN-ów nie zrobi w SQL praktycznie nic sensownego: dane w relacyjnych bazach są znormalizowane, czyli celowo rozbite na tabele - żeby je analizować, trzeba je z powrotem posklejać. To jeden z tych tematów, które w ogłoszeniach o pracę dla BA stoją w wymaganiach twardych.

W bazie MediFlow raport obłożenia przychodni wymaga czterech tabel naraz:

SELECT pr.nazwa, l.nazwisko, COUNT(*) AS wizyty
FROM wizyty w
JOIN lekarze l ON w.lekarz_id = l.id
JOIN przychodnie pr ON l.przychodnia_id = pr.id
JOIN pacjenci p ON w.pacjent_id = p.id
GROUP BY pr.nazwa, l.nazwisko;

Cztery tabele, jedno zapytanie, raport gotowy. Bez JOIN-ów: eksporty do Excela i wklejanie WYSZUKAJ.PIONOWO do końca świata.

Częsta pomyłka - i to taka, która produkuje błędne raporty trafiające na biurka zarządów: zwielokrotnienie wierszy przy złączeniu jeden-do-wielu. Jedna wizyta ma trzy procedury medyczne; po złączeniu wizyt z procedurami każda wizyta występuje trzy razy - i suma kosztów wizyt policzona na takim wyniku wychodzi trzykrotnie zawyżona. Zapytanie nie zgłasza błędu, liczby wyglądają wiarygodnie. Obrona: po każdym JOIN sprawdź liczbę wierszy i zrozum, co teraz reprezentuje jeden wiersz wyniku.

Rozwijaj się z Analify

Nowe pojęcia, artykuły i materiały - prosto na email. Bez spamu.

Dołącz do społeczności analityków biznesowych - szkolenia wideo, prelekcje na żywo i wsparcie ekspertów

Sprawdź Analify