Pivotarea datelor în SQL
Începând de aici? Această lecție face parte dintr-un tutorial complet privind utilizarea SQL pentru analiza datelor. Verificați începutul.
În această lecție vom acoperi:
- Pivotarea rândurilor pe coloane
- Pivotarea coloanelor pe rânduri
- Ce urmează?
Pivotarea rândurilor în coloane
Această lecție vă va învăța cum să luați date formatate pentru analiză și să le pivotați pentru prezentare sau diagramă . Vom lua un set de date care arată astfel:
Și vom face să arate astfel:
Pentru acest exemplu, vom folosi același set de date pentru jucătorii de fotbal din colegiu utilizați în lecția CASE. Puteți vizualiza datele direct aici.
Să începem prin agregarea datelor pentru a arăta numărul de jucători din fiecare an în fiecare conferință, similar cu primul exemplu din lecția de îmbinare interioară:
Vizualizați acest lucru în mod.
Pentru a transforma datele, va trebui să punem interogarea de mai sus într-o subinterogare. Poate fi util să creați subinterogarea și să selectați toate coloanele din aceasta înainte de a începe să efectuați transformări. Reexecutarea interogării la pași incrementali de acest fel facilitează depanarea dacă interogarea dvs. nu rulează. Rețineți că puteți elimina clauza ORDER BY
din subinterogare, deoarece vom reordona rezultatele interogării externe.
Presupunând că funcționează așa cum este planificat (rezultatele ar trebui să arate exact la fel ca prima interogare), este timpul să împărțiți rezultatele în coloane diferite timp de mai mulți ani. Fiecare articol în declarația SELECT
se creează o coloană, așa că va trebui să creați o coloană separată pentru fiecare an:
Din punct de vedere tehnic, acum ați atins obiectivul acest tutorial. Dar acest lucru ar putea fi îmbunătățit puțin. Veți observa că interogarea de mai sus produce o listă care este ordonată alfabetic de Conferință. Ar putea avea mai mult sens să adăugați o coloană „total de jucători” și să ordonați după aceea (de la cel mai mare la cel mai mic):
Și ați terminat! Vedeți acest lucru în mod.
Coloanele pivotante la rânduri
O mulțime de date pe care le veți afla pe internet sunt formatate pentru consum, nu pentru analiză. Luați, de exemplu, acest tabel care arată numărul cutremurelor din întreaga lume în perioada 2000-2012:
În acest format este dificil să răspundeți la întrebări precum „ce „Este magnitudinea medie a unui cutremur?” Ar fi mult mai ușor dacă datele ar fi afișate în 3 coloane: „magnitudine”, „an” și „număr de cutremure”. Iată cum să transformați datele în acel formular:
Mai întâi, verificați aceste date în Mod:
Notă: coloană numele încep cu „anul_” deoarece Modul necesită ca numele coloanelor să înceapă cu litere.
Primul lucru de făcut aici este să creați un tabel care listează toate coloanele din tabelul original ca rânduri într-un nou tabel Cu excepția cazului în care aveți o mulțime de coloane pe care să le transformați, cel mai simplu mod este adesea doar să le listați într-o subinterogare:
Odată ce ați primit acest lucru , îl puteți îmbina cu tabelul worldwide_earthquakes
pentru a crea o vizualizare extinsă:
Observați că fiecare rând din worldwide_earthquakes
este reprodus de 13 ori. Ultimul lucru de făcut este să remediați acest lucru folosind o instrucțiune CASE
care extrage date din coloana corectă din tabelul worldwide_earthquakes
având în vedere valoarea din coloana year
:
Vizualizați produsul final în mod.
Felicitări pentru finalizarea Tutorialului SQL avansat! Acum că aveți un control asupra SQL, următorul pas este să vă perfecționați procesul analitic.
Am construit secțiunea SQL Training Training în acest scop. Cu seturi de date false pentru a imita situațiile din lumea reală, puteți aborda această secțiune, cum ar fi formarea la locul de muncă. Verifică-l!