zaczyna się tutaj? Ta lekcja jest częścią pełnowymiarowego samouczka na temat używania SQL do analizy danych. Spójrz na początek.
w tej lekcji omówimy:
- polecenie LEFT JOIN
- problemy praktyczne
polecenie LEFT JOIN
Zacznijmy od uruchomienia INNER JOIN
na zbiorze danych Crunchbase i przyjrzyjmy się wyniki. Po prostu przyjrzymy sięcompany-permalink
w każdej tabeli, a także kilku innym Polom, aby dowiedzieć się, co jest rzeczywiście połączone.,
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink
możesz zauważyć, że „280 North” pojawia się dwa razy na tej liście. To dlatego, że ma dwa wpisy w tabeli tutorial.crunchbase_acquisitions
, z których oba są połączone do tabeli tutorial.crunchbase_companies
.,
teraz spróbuj uruchomić to zapytanie jako LEFT JOIN
:
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink
możesz zobaczyć, że dwie pierwsze firmy z poprzedniego zestawu wyników, #waywire i 1000memories, są popychane w dół strony o liczbę wyniki zawierające wartości Null w polach acquisitions_permalink
I acquired_date
.,
dzieje się tak, ponieważ polecenie LEFT JOIN
mówi bazie danych, aby zwracała wszystkie wiersze w tabeli w klauzuli FROM
, niezależnie od tego, czy mają dopasowania w tabeli w LEFT JOIN
div > klauzula.,
wyostrz swoje umiejętności SQL
możesz zbadać różnice między LEFT JOIN
I JOIN
rozwiązując te problemy praktyczne:
problem praktyczny
napisz zapytanie, które wykonuje wewnętrzne połączenie pomiędzy tabelątutorial.crunchbase_acquisitions
a tabelątutorial.crunchbase_companies
, ale zamiast wypisywania pojedynczych wierszy, policz liczbę wierszy innych niż NULL w każdej tabeli.,
Wypróbuj Zobacz odpowiedź
problem praktyczny
Zmień powyższe zapytanie na LEFT JOIN
. Zwróć uwagę na różnicę w wynikach.
Wypróbuj Zobacz odpowiedź
teraz, gdy już wiesz, jak działają lewe połączenia, spróbuj trudniej rozwiązać problem agregacji:
problem praktyczny
policz liczbę unikalnych firm (nie licz podwójnie firm) i unikalnych przejętych firm według stanu., Nie uwzględniaj wyników, dla których nie ma danych państwowych, i uporządkuj według liczby przejętych firm od najwyższej do najniższej.
Wypróbuj Zobacz odpowiedź