Svinge data i SQL
Starter du her? Denne leksjonen er en del av en fullstendig opplæring i bruk av SQL til dataanalyse. Sjekk ut begynnelsen.
I denne leksjonen vil vi dekke:
- Sving rader til kolonner
- Sving kolonner til rader
- Hva er det neste?
Sving rader til kolonner
Denne leksjonen vil lære deg hvordan du tar data som er formatert for analyse og svinger dem for presentasjon eller kartlegging . Vi tar et datasett som ser slik ut:
Og får det til å se slik ut:
For dette eksemplet bruker vi det samme datasettet College Football-spillere som ble brukt i CASE-leksjonen. Du kan se dataene direkte her.
La oss begynne med å samle dataene for å vise antall spillere hvert år i hver konferanse, i likhet med det første eksemplet i den indre leksjonen:
Se dette i modus.
For å transformere dataene, må vi sette spørringen ovenfor inn i en underspørring. Det kan være nyttig å opprette undersøket og velge alle kolonnene fra det før du begynner å gjøre transformasjoner. Å kjøre spørringen på nytt i trinnvise trinn som dette gjør det lettere å feilsøke hvis spørringen ikke kjøres. Vær oppmerksom på at du kan eliminere ORDER BY
-klausulen fra undersøket siden vi bestiller resultatene i den ytre spørringen.
Forutsatt at det fungerer som planlagt (resultatene skal se nøyaktig ut som den første spørringen), er det på tide å dele resultatene opp i forskjellige kolonner i forskjellige år. Hvert element i SELECT
uttalelsen oppretter en kolonne, så du må opprette en egen kolonne for hvert år:
Teknisk har du nå oppnådd målet om denne veiledningen. Men dette kan fortsatt gjøres litt bedre. Du vil legge merke til at spørringen ovenfor produserer en liste som er ordnet alfabetisk av Conference. Det kan være mer fornuftig å legge til en «total spiller» -kolonne og bestille etter den (største til minste):
Og du er ferdig! Se dette i modus.
Svingende kolonner til rader
Mye data du vil finne der ute på internett, er formatert for forbruk, ikke for analyse. Ta for eksempel denne tabellen som viser antall jordskjelv over hele verden fra 2000-2012:
I dette formatet er det utfordrende å svare på spørsmål som «hva «er den gjennomsnittlige størrelsen på et jordskjelv?» Det ville vært mye lettere hvis dataene ble vist i tre kolonner: «størrelsesorden», «år» og «antall jordskjelv.» Slik transformerer du dataene til det skjemaet:
Sjekk først ut disse dataene i Mode:
Merk: kolonne navn begynner med «år_» fordi Mode krever at kolonnenavn skal begynne med bokstaver.
Det første du må gjøre her er å lage en tabell som viser alle kolonnene fra den opprinnelige tabellen som rader i en ny tabell. Med mindre du har massevis av kolonner å transformere, er den enkleste måten ofte bare å liste dem ut i en undersøking:
Når du har fått dette , kan du krysse sammen med worldwide_earthquakes
-tabellen for å lage en utvidet visning:
Legg merke til at hver rad i worldwide_earthquakes
replikeres 13 ganger. Den siste tingen å gjøre er å fikse dette ved hjelp av en CASE
uttalelse som henter data fra riktig kolonne i worldwide_earthquakes
tabellen gitt verdien i year
-kolonnen:
Se det endelige produktet i Mode.
Gratulerer med fullføringen av Advanced SQL Tutorial! Nå som du har fått tak i SQL, er det neste trinnet å finpusse din analytiske prosess.
Vi har bygget opp delen SQL Analytics Training for akkurat det formålet. Med falske datasett for å etterligne virkelige situasjoner, kan du nærme deg denne delen som trening på stedet. Sjekk det ut!