SQL UNION
On 16 listopadu, 2021 by adminZačínáte zde? Tato lekce je součástí plnohodnotné výukové lekce o používání jazyka SQL pro analýzu dat. Podívejte se na začátek.
V této lekci se budeme zabývat:
- Operátorem SQL UNION
- Praktické úlohy
Operátor SQL UNION
SQL joins umožňuje spojit dvě datové sady vedle sebe, ale UNION
umožňuje naskládat jednu datovou sadu na druhou. Jinak řečeno, UNION
umožňuje napsat dva samostatné příkazy SELECT
a nechat zobrazit výsledky jednoho příkazu ve stejné tabulce jako výsledky druhého příkazu.
Vyzkoušejme si to s investičními daty Crunchbase, která byla pro účely této lekce rozdělena do dvou tabulek. Následující dotaz zobrazí všechny výsledky z první části dotazu a poté všechny výsledky z druhé části ve stejné tabulce:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION SELECT * FROM tutorial.crunchbase_investments_part2
Všimněte si, že UNION
pouze připojuje odlišné hodnoty. Přesněji řečeno, při použití UNION
se připojí soubor dat a všechny řádky v připojené tabulce, které jsou přesně totožné s řádky v první tabulce, se vyřadí. Pokud chcete připojit všechny hodnoty z druhé tabulky, použijte UNION ALL
. Pravděpodobně budete UNION ALL
používat mnohem častěji než UNION
. V tomto konkrétním případě nejsou žádné duplicitní řádky, takže UNION ALL
přinese stejné výsledky:
SELECT * FROM tutorial.crunchbase_investments_part1 UNION ALL SELECT * FROM tutorial.crunchbase_investments_part2
SQL má pro připojování dat přísná pravidla:
- Obě tabulky musí mít stejný počet sloupců
- Sloupce musí mít stejné datové typy ve stejném pořadí jako první tabulka
Ačkoli názvy sloupců nemusí být stejné, zjistíte, že obvykle jsou. Je to proto, že většina případů, kdy byste chtěli použít UNION
, zahrnuje sešití různých částí téže datové sady (jako v tomto případě).
Protože píšete dva samostatné příkazy SELECT
, můžete s nimi před připojením zacházet různě. Můžete je například různě filtrovat pomocí různých klauzulí WHERE
.
Zdokonalte své dovednosti v SQL
Praktická úloha
Napište dotaz, který připojí dvě výše uvedené sady dat crunchbase_investments
(včetně duplicitních hodnot). První datovou sadu filtrujte pouze na společnosti s názvy začínajícími písmenem „T“ a druhou na společnosti s názvy začínajícími písmenem „M“ (v obou případech nerozlišujte velká a malá písmena). Zahrňte pouze sloupce company_permalink
, company_name
a investor_name
.
Vyzkoušejte si to Viz odpověď
Pro trochu náročnější úkol:
Praktická úloha
Napište dotaz, který zobrazí 3 sloupce. První označuje, ze které datové sady (část 1 nebo 2) data pocházejí, druhý ukazuje stav společnosti a třetí je počet investorů.
Nápověda: budete muset použít tabulku tutorial.crunchbase_companies
i tabulky investic. A budete chtít seskupit podle stavu a souboru dat.
Vyzkoušejte si to Viz odpověď
.
Napsat komentář