A partire da qui? Questa lezione fa parte di un tutorial completo sull’utilizzo di SQL per l’analisi dei dati. Guarda l’inizio.
In questa lezione tratteremo:
- Il comando LEFT JOIN
- Problemi di pratica
Il comando LEFT JOIN
Iniziamo eseguendo un INNER JOIN
sul set di dati Crunchbase e dando un’occhiata ai risultati. Guarderemo solo company-permalink
in ogni tabella, così come un paio di altri campi, per avere un’idea di ciò che viene effettivamente unito.,
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
Potresti notare che “280 North” appare due volte in questa lista. Questo perché ha due voci nella tabellatutorial.crunchbase_acquisitions
, entrambe vengono unite alla tabellatutorial.crunchbase_companies
.,
Ora prova ad eseguire la query come 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
Si può vedere che i primi due aziende dal risultato precedente set, #waywire e 1000memories, sono spinto verso il basso la pagina da una serie di risultati che contengono valori null nel acquisitions_permalink
e acquired_date
campi.,
Questo è perché il LEFT JOIN
comando dice al database di restituire tutte le righe della tabella nel FROM
clausola, indipendentemente dal fatto che o non hanno corrispondenze della tabella nel LEFT JOIN
clausola.,
Affinare le vostre competenze SQL
È possibile esplorare le differenze tra un LEFT JOIN
e un JOIN
la soluzione di praticare questi problemi:
la Pratica del Problema
Scrivere una query che esegue un inner join tra i tag tutorial.crunchbase_acquisitions
tabella e il tutorial.crunchbase_companies
tabella, ma invece di elencare le singole righe, contare il numero di non-null righe in ogni tabella.,
Provalo Vedere la risposta
Problema di pratica
Modificare la query di cui sopra per essere unLEFT JOIN
. Nota la differenza nei risultati.
Provalo Guarda la risposta
Ora che hai un’idea di come funzionano i left join, prova questo problema di aggregazione più difficile:
Problema di pratica
Conta il numero di società uniche (non conteggiare due volte le società) e le società acquisite univoche per stato., Non includere i risultati per i quali non ci sono dati di stato e ordinare per il numero di società acquisite dal più alto al più basso.
Provalo Vedi la risposta