SQL UNION
On 16 marraskuun, 2021 by adminAloitetaanko tästä? Tämä oppitunti on osa koko oppituntia, joka käsittelee SQL:n käyttöä data-analyysissä. Tutustu alkuun.
Tällä oppitunnilla käsittelemme:
- SQL UNION -operaattori
- Harjoitustehtäviä
SQL UNION -operaattori
SQL-joineilla voit yhdistää kaksi tietokokonaisuutta vierekkäin, mutta UNION
:llä voit pinota tietokokonaisuuksia toistensa päälle. Toisin sanoen UNION
:n avulla voit kirjoittaa kaksi erillistä SELECT
lauseketta ja saada toisen lausekkeen tulokset näkymään samassa taulukossa kuin toisen lausekkeen tulokset.
Kokeillaan sitä Crunchbase-sijoitustiedoilla, jotka on jaettu kahteen taulukkoon tätä oppituntia varten. Seuraava kysely näyttää kaikki kyselyn ensimmäisen osan tulokset ja sitten kaikki toisen osan tulokset samassa taulukossa:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Huomaa, että UNION
liittää vain erilliset arvot. Tarkemmin sanottuna, kun käytät UNION
, tietokokonaisuus liitetään, ja kaikki liitetyn taulukon rivit, jotka ovat täsmälleen samanlaisia kuin ensimmäisen taulukon rivit, poistetaan. Jos haluat liittää kaikki toisen taulukon arvot, käytä UNION ALL
. Käytät todennäköisesti UNION ALL
paljon useammin kuin UNION
. Tässä nimenomaisessa tapauksessa ei ole päällekkäisiä rivejä, joten UNION ALL
tuottaa samat tulokset:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL:llä on tiukat säännöt tietojen liittämiselle:
- Kummassakin taulukossa on oltava sama määrä sarakkeita
- Sarakkeilla on oltava samat tietotyypit samassa järjestyksessä kuin ensimmäisessä taulukossa
Naisten sarakkeiden nimien ei tarvitse välttämättä olla samoja, mutta huomaat, että tyypillisesti niin on. Tämä johtuu siitä, että useimmissa tapauksissa, joissa haluat käyttää UNION
:ää, on kyse saman tietokokonaisuuden eri osien yhdistämisestä (kuten tässä tapauksessa).
Koska kirjoitat kaksi erillistä SELECT
-lausetta, voit käsitellä niitä eri tavalla ennen liittämistä. Voit esimerkiksi suodattaa niitä eri tavoin käyttämällä eri WHERE
-lausekkeita.
Terävöitä SQL-taitojasi
Harjoitustehtävä
Kirjoita kysely, joka liittää yhteen yllä olevat kaksi crunchbase_investments
-tietokokonaisuutta (mukaan lukien duplikaattiarvot). Suodata ensimmäinen tietokokonaisuus vain yrityksiin, joiden nimet alkavat kirjaimella ”T”, ja suodata toinen tietokokonaisuus yrityksiin, joiden nimet alkavat kirjaimella ”M” (molemmissa ei oteta huomioon isoja ja pieniä kirjaimia). Ota mukaan vain sarakkeet company_permalink
, company_name
ja investor_name
.
Kokeile Katso vastaus
Hieman haastavammaksi:
Harjoitusongelma
Kirjoita kysely, joka näyttää 3 saraketta. Ensimmäinen osoittaa, kummasta tietokokonaisuudesta (osa 1 tai 2) tiedot ovat peräisin, toinen näyttää yrityksen tilan ja kolmas on sijoittajien lukumäärän laskenta.
Vihje: sinun on käytettävä tutorial.crunchbase_companies
-taulukkoa sekä sijoituksia koskevia taulukoita. Ja haluat ryhmitellä statuksen ja tietokokonaisuuden mukaan.
Kokeile Katso vastaus
Vastaa