Svänga data i SQL
Börjar du här? Den här lektionen är en del av en fullständig handledning i att använda SQL för dataanalys. Kolla in början.
I den här lektionen täcker vi:
- Svänga rader till kolumner
- Svänga kolumner till rader
- Vad händer nu?
Svänga rader till kolumner
Den här lektionen lär dig hur du tar data som är formaterad för analys och svänger den för presentation eller diagram . Vi tar en dataset som ser ut så här:
Och får det att se ut så här:
För det här exemplet kommer vi att använda samma dataset av College Football-spelare som användes i CASE-lektionen. Du kan se data direkt här.
Låt oss börja med att sammanställa data för att visa antalet spelare för varje år i varje konferens, liknande det första exemplet i den inre anslutningslektionen:
Visa detta i läge.
För att transformera data måste vi placera ovanstående fråga i en underfråga. Det kan vara bra att skapa underfrågan och välja alla kolumner från den innan du börjar göra omvandlingar. Att köra frågan igen i stegvisa steg som detta gör det lättare att felsöka om din fråga inte körs. Observera att du kan eliminera ORDER BY
-satsen från underfrågan eftersom vi ombeställer resultaten i den yttre frågan.
Förutsatt att det fungerar som planerat (resultaten ska se exakt ut som den första frågan), är det dags att dela upp resultaten i olika kolumner under olika år. Varje artikel i uttalandet SELECT
skapas en kolumn så att du måste skapa en separat kolumn för varje år:
Tekniskt har du nu uppnått målet att den här självstudien. Men det kan ändå göras lite bättre. Du kommer att märka att ovanstående fråga ger en lista som ordnas alfabetiskt av Conference. Det kan vara mer meningsfullt att lägga till en kolumn ”Totalt antal spelare” och ordna efter det (största till minsta):
Och du är klar! Se det här i läge.
Svängande kolumner till rader
Mycket data som du hittar där ute på internet är formaterad för konsumtion, inte för analys. Ta till exempel den här tabellen som visar antalet jordbävningar världen över från 2000-2012:
I detta format är det utmanande att svara på frågor som ”vad ”är den genomsnittliga storleken på en jordbävning?” Det skulle vara mycket lättare om data visas i tre kolumner: ”storlek”, ”år” och ”antal jordbävningar.” Så här omvandlar du data till den formen:
Kolla först dessa data i läge:
Obs: kolumn namn börjar med ”år_” eftersom läget kräver att kolumnnamn börjar med bokstäver.
Det första du ska göra här är att skapa en tabell som visar alla kolumner från originaltabellen som rader i en ny tabell Om du inte har massor av kolumner att transformera, är det enklaste sättet ofta bara att lista ut dem i en underfråga:
När du väl har fått det här , du kan korsa den med tabellen worldwide_earthquakes
för att skapa en utökad vy:
Observera att varje rad i worldwide_earthquakes
replikeras 13 gånger. Det sista du ska göra är att åtgärda detta med ett CASE
-uttalande som hämtar data från rätt kolumn i worldwide_earthquakes
-tabellen med värdet i year
-kolumnen:
Visa den slutliga produkten i läge.
Grattis till avslutningen av den avancerade SQL-självstudien! Nu när du har tagit hand om SQL är nästa steg att finjustera din analytiska process.
Vi har byggt avsnittet SQL Analytics Training för just det syftet. Med falska datauppsättningar för att efterlikna verkliga situationer kan du närma dig det här avsnittet som utbildning på arbetsplatsen. Kolla in det!