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

0