Začněte nyníZačněte zdarma

SQL v kostce (2)

Dalším běžným databázovým úkolem je agregace – tedy zmenšení objemu dat tím, že je rozdělíš do skupin a každou skupinu shrneš.

V SQL se k tomu používá příkaz GROUP BY. Ten rozdělí data do skupin a na každou skupinu aplikuje funkci zadanou v příkazu SELECT.

Například, pokud bys chtěl/a zjistit počet letů z každého ze dvou výchozích letišť, použil/a bys dotaz:

SELECT COUNT(*) FROM flights
GROUP BY origin;

GROUP BY origin říká SQL, že výsledek má mít jeden řádek pro každou jedinečnou hodnotu sloupce origin. Příkaz SELECT určuje hodnoty, které se zobrazí v jednotlivých sloupcích. Tady chceme COUNT() spočítat všechny řádky v každé skupině.

Můžeš také seskupit podle více sloupců najednou. V takovém případě bude výsledná tabulka obsahovat řádek pro každou kombinaci jedinečných hodnot v těchto sloupcích. Následující dotaz spočítá počet letů z letišť SEA a PDX do každého cílového letiště:

SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;

Výsledek bude obsahovat řádek pro každou kombinaci hodnot sloupců origin a dest (tedy řádek pro každou dvojici výchozího a cílového letiště). Přibude také sloupec s hodnotou COUNT() pro všechny řádky v dané skupině.

Podrobnější přehled SQL najdeš zde.

Jaké informace vrátí tento dotaz? Připomeň si, že tabulka flights obsahuje údaje o letech odlétajících z letišť PDX a SEA v letech 2014 a 2015. Funkce AVG() vypočítá průměrnou hodnotu sloupce!

SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;

Toto cvičení je součástí kurzu

Foundations of PySpark

Zobrazit kurz

Interaktivní praktické cvičení

Proměňte teorii v praxi s jedním z našich interaktivních cvičení

Začít cvičení