î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