SQL UNION
On noiembrie 16, 2021 by adminÎncepem de aici? Această lecție face parte dintr-un tutorial complet de utilizare a SQL pentru analiza datelor. Consultați începutul.
În această lecție vom acoperi:
- Operatorul SQL UNION
- Probleme practice
Operatorul SQL UNION
Joncțiunile SQL vă permit să combinați două seturi de date unul lângă altul, dar UNION
vă permite să suprapuneți un set de date peste celălalt. Altfel spus, UNION
vă permite să scrieți două declarații SELECT
separate și să faceți ca rezultatele unei declarații să fie afișate în același tabel cu rezultatele celeilalte declarații.
Să încercăm cu datele de investiții Crunchbase, care au fost împărțite în două tabele în scopul acestei lecții. Următoarea interogare va afișa toate rezultatele din prima porțiune a interogării, apoi toate rezultatele din a doua porțiune în același tabel:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Rețineți că UNION
anexează doar valori distincte. Mai exact, atunci când utilizați UNION
, setul de date este anexat, iar toate rândurile din tabelul anexat care sunt exact identice cu rândurile din primul tabel sunt eliminate. Dacă doriți să adăugați toate valorile din al doilea tabel, utilizați UNION ALL
. Probabil că veți folosi UNION ALL
mult mai des decât UNION
. În acest caz particular, nu există rânduri duplicate, astfel încât UNION ALL
va produce aceleași rezultate:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL are reguli stricte pentru adăugarea de date:
- Ambele tabele trebuie să aibă același număr de coloane
- Coloanele trebuie să aibă aceleași tipuri de date în aceeași ordine ca și în primul tabel
În timp ce numele coloanelor nu trebuie să fie neapărat aceleași, veți constata că, de obicei, acestea sunt. Acest lucru se datorează faptului că majoritatea cazurilor în care ați dori să utilizați UNION
implică îmbinarea diferitelor părți ale aceluiași set de date (cum este cazul aici).
Din moment ce scrieți două instrucțiuni SELECT
separate, le puteți trata diferit înainte de a le anexa. De exemplu, le puteți filtra în mod diferit folosind clauze WHERE
diferite.
Află-ți abilitățile SQL
Problemă practică
Scrieți o interogare care anexează cele două seturi de date crunchbase_investments
de mai sus (inclusiv valorile duplicate). Filtrați primul set de date numai pentru companiile cu nume care încep cu litera „T” și filtrați al doilea set de date pentru companiile cu nume care încep cu „M” (ambele nu țin cont de majuscule și minuscule). Includeți numai coloanele company_permalink
, company_name
și investor_name
.
Încercați Vezi răspunsul
Pentru o provocare ceva mai mare:
Problemă practică
Scrieți o interogare care să arate 3 coloane. Prima indică din ce set de date (partea 1 sau 2) provin datele, a doua arată statutul companiei, iar a treia este o numărătoare a numărului de investitori.
Sugestie: va trebui să folosiți tabelul tutorial.crunchbase_companies
, precum și tabelele de investiții. Și veți dori să grupați în funcție de statut și de setul de date.
Încercați să vedeți răspunsul
.
Lasă un răspuns