Otáčení dat v SQL
Začínáte zde? Tato lekce je součástí úplného kurzu používání SQL pro analýzu dat. Podívejte se na začátek.
V této lekci pojednáme:
- Otočení řádků do sloupců
- Otočení sloupců do řádků
- Co bude dál?
Otočení řádků do sloupců
Tato lekce vás naučí, jak převzít data formátovaná pro analýzu a otočit je pro prezentaci nebo grafy . Vezmeme datovou sadu, která vypadá takto:
A necháme to vypadat takto:
V tomto příkladu použijeme stejný datový soubor hráčů univerzitního fotbalu použitý v lekci CASE. Data si můžete prohlédnout přímo zde.
Začněme agregací dat a zobrazením počtu hráčů každého roku na každé konferenci, podobně jako v prvním příkladu v lekci o vnitřním připojení:
Zobrazit v režimu.
Abychom mohli data transformovat, budeme muset výše uvedený dotaz vložit do poddotazu. Může být užitečné vytvořit poddotaz a vybrat z něj všechny sloupce, než začnete provádět transformace. Opětovné spuštění dotazu v přírůstkových krocích, jako je tento, usnadňuje ladění, pokud se váš dotaz nespustí. Upozorňujeme, že klauzuli ORDER BY
můžete z poddotazu vyloučit, protože znovu uspořádáme výsledky ve vnějším dotazu.
Za předpokladu, že funguje podle plánu (výsledky by měly vypadat přesně stejně jako první dotaz), je čas rozdělit výsledky do různých sloupců pro různé roky. Každá položka ve výkazu SELECT
vytvoříte sloupec, takže budete muset pro každý rok vytvořit samostatný sloupec:
Technicky jste nyní dosáhli cíle tento tutoriál. Ale stále by to mohlo být trochu vylepšeno. Všimněte si, že výše uvedený dotaz vytvoří seznam, který je abecedně seřazen podle konference. Mohlo by dávat větší smysl přidat sloupec „celkový počet hráčů“ a podle něj (od největšího po nejmenší):
A vy jste hotovi! Zobrazit v režimu.
Otočné sloupce do řádků
Mnoho dat, která na internetu zjistíte, je formátováno pro spotřebu, nikoli pro analýzu. Vezměme si například tuto tabulku zobrazující počet zemětřesení na celém světě v období 2000–2012:
V tomto formátu je náročné odpovídat na otázky typu „co „je průměrná velikost zemětřesení?“ Bylo by mnohem jednodušší, kdyby se data zobrazovala ve 3 sloupcích: „velikost“, „rok“ a „počet zemětřesení“. Zde je postup, jak převést data do této formy:
Nejprve zkontrolujte tato data v režimu:
Poznámka: sloupec jména začínají na „year_“, protože režim vyžaduje, aby názvy sloupců začaly písmeny.
První věcí, kterou zde musíte udělat, je vytvořit tabulku, která obsahuje všechny sloupce z původní tabulky jako řádky v nové tabulce . Pokud nemáte spoustu sloupců k transformaci, nejjednodušší způsob je často jen vypsat je v poddotazu:
Jakmile to máte , můžete jej křížově spojit s tabulkou worldwide_earthquakes
a vytvořit rozšířené zobrazení:
Všimněte si, že každý řádek v worldwide_earthquakes
je replikován 13krát. Poslední věcí, kterou musíte udělat, je opravit to pomocí příkazu CASE
, který načte data ze správného sloupce v tabulce worldwide_earthquakes
s hodnotou v sloupec year
:
Zobrazit finální produkt v režimu.
Gratulujeme k dokončení Pokročilého výukového programu SQL! Nyní, když jste zvládli SQL, je dalším krokem zdokonalit váš analytický proces.
Za tímto účelem jsme vytvořili sekci Školení SQL Analytics. S falešnými datovými sadami, které napodobují situace v reálném světě, můžete k této části přistupovat jako k školení na pracovišti. Podívejte se!