UNIONE SQL
Il Novembre 16, 2021 da adminCominci qui? Questa lezione fa parte di un tutorial completo sull’uso di SQL per l’analisi dei dati. Controlla l’inizio.
In questa lezione copriremo:
- L’operatore SQL UNION
- Problemi pratici
L’operatore SQL UNION
Le join SQL ti permettono di combinare due set di dati fianco a fianco, ma UNION
ti permette di sovrapporre un set di dati all’altro. In altre parole, UNION
permette di scrivere due istruzioni SELECT
separate, e di avere i risultati di un’istruzione nella stessa tabella dei risultati dell’altra istruzione.
Proviamola con i dati di investimento di Crunchbase, che sono stati divisi in due tabelle per gli scopi di questa lezione. La seguente query mostrerà tutti i risultati della prima parte della query, poi tutti i risultati della seconda parte nella stessa tabella:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Nota che UNION
aggiunge solo valori distinti. Più precisamente, quando usi UNION
, il set di dati viene aggiunto, e tutte le righe della tabella aggiunta che sono esattamente identiche alle righe della prima tabella vengono eliminate. Se vuoi aggiungere tutti i valori della seconda tabella, usa UNION ALL
. Probabilmente userete UNION ALL
molto più spesso di UNION
. In questo caso particolare, non ci sono righe duplicate, quindi UNION ALL
produrrà gli stessi risultati:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL ha regole severe per l’aggiunta di dati:
- Entrambe le tabelle devono avere lo stesso numero di colonne
- Le colonne devono avere gli stessi tipi di dati nello stesso ordine della prima tabella
Mentre i nomi delle colonne non devono necessariamente essere gli stessi, troverete che di solito lo sono. Questo perché la maggior parte delle istanze in cui vorresti usare UNION
coinvolgono la cucitura di diverse parti dello stesso set di dati (come è il caso qui).
Siccome stai scrivendo due dichiarazioni SELECT
separate, puoi trattarle diversamente prima di aggiungerle. Per esempio, puoi filtrarli diversamente usando diverse clausole WHERE
.
Affina le tue abilità SQL
Problema pratico
Scrivi una query che aggiunge i due crunchbase_investments
dataset di cui sopra (inclusi i valori duplicati). Filtra il primo set di dati solo per le aziende con nomi che iniziano con la lettera “T”, e filtra il secondo per le aziende con nomi che iniziano con “M” (entrambi non sensibili alle maiuscole). Includete solo le colonne company_permalink
, company_name
e investor_name
.
Provalo Vedi la risposta
Per un po’ più di sfida:
Problema pratico
Scrivi una query che mostra 3 colonne. La prima indica da quale dataset (parte 1 o 2) provengono i dati, la seconda mostra lo stato della società e la terza è un conteggio del numero di investitori.
Suggerimento: dovrai usare la tabella tutorial.crunchbase_companies
oltre alle tabelle degli investimenti. E vorrai raggruppare per stato e per serie di dati.
Prova Vedi la risposta
Lascia un commento