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_acquisitionsa 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ź

0