SQL UNION
On november 16, 2021 by adminItt kezdjük? Ez a lecke az SQL használata az adatelemzéshez című, teljes terjedelmű oktatóanyag része. Nézze meg az elejét.
Ebben a leckében a következőket tárgyaljuk:
- Az SQL UNION operátor
- gyakorlati feladatok
Az SQL UNION operátor
Az SQL egyesítésekkel két adathalmazt kombinálhatunk egymás mellett, de UNION
lehetővé teszi, hogy az egyik adathalmazt a másikra rakjuk. Másképpen fogalmazva, a UNION
lehetővé teszi, hogy két külön SELECT
utasítást írjunk, és az egyik utasítás eredményei ugyanabban a táblázatban jelenjenek meg, mint a másik utasítás eredményei.
Próbáljuk ki a Crunchbase befektetési adataival, amelyeket a lecke céljaira két táblára osztottunk. A következő lekérdezés megjeleníti a lekérdezés első részének összes eredményét, majd a második rész összes eredményét ugyanabban a táblázatban:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Megjegyezzük, hogy a UNION
csak a megkülönböztetett értékeket csatolja. Pontosabban, amikor a UNION
-t használja, az adatkészletet csatolja, és a csatolt táblázat minden olyan sora, amely pontosan megegyezik az első táblázat soraival, törlődik. Ha a második tábla összes értékét szeretné csatolni, használja a UNION ALL
értéket. A UNION ALL
-t valószínűleg sokkal gyakrabban fogja használni, mint a UNION
-t. Ebben a konkrét esetben nincsenek duplikált sorok, így a UNION ALL
ugyanazokat az eredményeket fogja eredményezni:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
A SQL-nek szigorú szabályai vannak az adatok csatolására:
- Mindkét táblának ugyanannyi oszloppal kell rendelkeznie
- Az oszlopoknak ugyanazokkal az adattípusokkal kell rendelkezniük, ugyanabban a sorrendben, mint az első táblában
Míg az oszlopneveknek nem feltétlenül kell azonosnak lenniük, jellemzően így van. Ennek az az oka, hogy a legtöbb esetben, amikor a UNION
-t használni szeretné, ugyanazon adatállomány különböző részeinek összefűzéséről van szó (mint itt is).
Mivel két külön SELECT
utasítást ír, a csatolás előtt eltérően kezelheti őket. Például különbözőképpen szűrheti őket különböző WHERE
záradékok használatával.
Élesítse SQL-ismereteit
Gyakorlati feladat
Írjon lekérdezést, amely a fenti két crunchbase_investments
adathalmazt (a duplikált értékeket is beleértve) különbözőképpen csatolja egymáshoz. Szűrje az első adathalmazt csak a “T” betűvel kezdődő nevű vállalatokra, a másodikat pedig az “M” betűvel kezdődő nevű vállalatokra (mindkettő nem nagy- és kisbetű-érzékeny). Csak a company_permalink
, company_name
és investor_name
oszlopokat tartalmazza.
Próbálja ki Lásd a választ
Kicsit nagyobb kihívás:
Gyakorlati feladat
Írjon lekérdezést, amely 3 oszlopot mutat. Az első jelzi, hogy melyik adatkészletből (1. vagy 2. rész) származik az adat, a második a cég státuszát mutatja, a harmadik pedig a befektetők számát.
Tipp: a tutorial.crunchbase_companies
táblát és a befektetések táblákat is fel kell használnia. És csoportosítani kell a státusz és az adatkészlet szerint.
Próbálja ki Lásd a választ
Vélemény, hozzászólás?