Drejning af data i SQL
Starter du her? Denne lektion er en del af en tutorial i fuld længde i brug af SQL til dataanalyse. Se begyndelsen.
I denne lektion dækker vi:
- Drejning af rækker til kolonner
- Drejning af kolonner til rækker
- Hvad er det næste?
Drejning af rækker til kolonner
Denne lektion lærer dig, hvordan du tager data, der er formateret til analyse, og drejer dem til præsentation eller kortlægning . Vi tager et datasæt, der ser sådan ud:
Og får det til at se sådan ud:
I dette eksempel bruger vi det samme datasæt af College Football-spillere, der blev brugt i CASE-lektionen. Du kan se dataene direkte her.
Lad os starte med at samle dataene for at vise antallet af spillere for hvert år i hver konference, svarende til det første eksempel i den indre deltagelseslektion:
Se dette i tilstand.
For at transformere dataene skal vi placere ovenstående forespørgsel i en underforespørgsel. Det kan være nyttigt at oprette underforespørgslen og vælge alle kolonner fra den, inden du begynder at foretage transformationer. Genkørsel af forespørgslen i trinvise trin som dette gør det lettere at fejle, hvis din forespørgsel ikke kører. Bemærk, at du kan fjerne ORDER BY
-sætningen fra underforespørgslen, da vi ombestiller resultaterne i den ydre forespørgsel.
Forudsat at det fungerer som planlagt (resultaterne skal se nøjagtigt ud som den første forespørgsel), er det tid til at opdele resultaterne i forskellige kolonner i forskellige år. Hvert element i sætningen SELECT
oprettes en kolonne, så du bliver nødt til at oprette en separat kolonne for hvert år:
Teknisk set har du nu nået målet om denne tutorial. Men dette kan stadig gøres lidt bedre. Du vil bemærke, at ovenstående forespørgsel producerer en liste, der er ordnet alfabetisk af Conference. Det kan være mere fornuftigt at tilføje en “total spiller” -kolonne og rækkefølge efter den (største til mindste):
Og du er færdig! Se dette i tilstand.
Drejekolonner til rækker
En masse data, du finder ud der på internettet, er formateret til forbrug, ikke til analyse. Tag for eksempel denne tabel, der viser antallet af jordskælv på verdensplan fra 2000-2012:
I dette format er det udfordrende at besvare spørgsmål som “hvad “er den gennemsnitlige størrelse af et jordskælv?” Det ville være meget lettere, hvis dataene blev vist i 3 kolonner: “størrelsesorden”, “år” og “antal jordskælv.” Sådan transformeres dataene til den form:
Tjek først disse data i tilstand:
Bemærk: kolonne navne begynder med “år_”, fordi tilstand kræver, at kolonnenavne skal begynde med bogstaver.
Den første ting at gøre her er at oprette en tabel, der viser alle kolonnerne fra den originale tabel som rækker i en ny tabel Medmindre du har masser af kolonner at transformere, er den nemmeste måde ofte bare at liste dem ud i en underforespørgsel:
Når du først har fået dette , kan du krydse sammenføjning med tabellen worldwide_earthquakes
for at oprette en udvidet visning:
Bemærk, at hver række i worldwide_earthquakes
replikeres 13 gange. Den sidste ting at gøre er at rette dette ved hjælp af en CASE
udsagn, der trækker data fra den korrekte kolonne i worldwide_earthquakes
tabellen givet værdien i kolonnen year
:
Se det endelige produkt i tilstand.
Tillykke med afslutningen af den avancerede SQL-tutorial! Nu hvor du har håndteret SQL, er næste trin at finpudse din analytiske proces.
Vi har bygget sektionen SQL Analytics Training til netop det formål. Med falske datasæt til at efterligne virkelige situationer kan du nærme dig dette afsnit som oplæring på arbejdspladsen. Tjek det ud!