începând de aici? Această lecție face parte dintr-un tutorial complet în utilizarea SQL pentru analiza datelor. Uită-te la început.
În această lecție vom acoperi:
- STÂNGA se ALĂTURE comanda
- probleme de Practică
STÂNGA se ALĂTURE comanda
Să începem prin rularea un INNER JOIN
pe Crunchbase set de date și de a lua o uita-te la rezultatele. Ne vom uita doar la company-permalink
în fiecare tabel, precum și alte câteva câmpuri, pentru a obține o idee despre ceea ce se unește de fapt.,
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
este posibil să observați că” 280 North ” apare de două ori în această listă. Acest lucru se datorează faptului că are două intrări în tabelul tutorial.crunchbase_acquisitions
, ambele fiind Unite pe tabelul tutorial.crunchbase_companies
.,
Acum, încercați să rulați interogarea respectivă, ca un 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
puteți vedea că primele două companii din rezultatul anterior stabilite, #waywire și 1000memories, sunt împins în jos pe pagină cu o serie de rezultate care conțin valori null în acquisitions_permalink
și acquired_date
domenii.,
Acest lucru este pentru că LEFT JOIN
command spune bază de date pentru a returna toate rândurile din tabelul din FROM
clauză, indiferent dacă au sau nu corespunde în tabelul din LEFT JOIN
clauză.,
Ascuți abilitățile SQL
puteți explora diferențele dintre un LEFT JOIN
și un JOIN
de a rezolva aceste probleme de practică:
Problema Practică
Scrie o interogare care efectuează o inner join între tutorial.crunchbase_acquisitions
masă și tutorial.crunchbase_companies
masă, dar în loc de listare rânduri individuale, conta numărul de non-null rânduri în fiecare tabel.,
încercați să vedeți răspunsul
problemă practică
modificați interogarea de mai sus pentru a fi un LEFT JOIN
. Rețineți diferența de rezultate.
încercați să vedeți răspunsul
acum, că aveți un sentiment de cum stânga se alătură de lucru, încercați această problemă agregare mai greu:
problemă practică
numărați numărul de companii unice (nu double-count companii) și companii unice achiziționate de stat., Nu includeți rezultate pentru care nu există date de stat și ordonați după numărul de companii achiziționate de la cea mai mare la cea mai mică.
încercați să vedeți răspunsul