Obracanie danych w SQL
Zaczynasz tutaj? Ta lekcja jest częścią pełnego samouczka dotyczącego używania języka SQL do analizy danych. Zapoznaj się z początkiem.
W tej lekcji zajmiemy się:
- Przestawianie wierszy do kolumn
- Przestawianie kolumn do wierszy
- Co dalej?
Obracanie wierszy do kolumn
Ta lekcja nauczy Cię, jak pobierać dane sformatowane do analizy i przestawiać je do prezentacji lub wykresów . Weźmiemy następujący zbiór danych:
I nadajmy mu następujący wygląd:
W tym przykładzie użyjemy tego samego zbioru danych o zawodnikach futbolu uniwersyteckiego, co w lekcji CASE. Możesz przeglądać dane bezpośrednio tutaj.
Zacznijmy od zebrania danych, aby pokazać liczbę graczy każdego roku w każdej konferencji, podobnie jak w pierwszym przykładzie z lekcji łączenia wewnętrznego:
Zobacz to w trybie.
Aby przekształcić dane, musimy umieścić powyższe zapytanie w podzapytaniu. Pomocne może być utworzenie podzapytania i wybranie z niego wszystkich kolumn przed rozpoczęciem przekształcania. Ponowne uruchamianie zapytania w krokach przyrostowych, takich jak ten, ułatwia debugowanie, jeśli zapytanie nie zostało uruchomione. Pamiętaj, że możesz wyeliminować klauzulę ORDER BY
z podzapytania, ponieważ zmienimy kolejność wyniki w zewnętrznym zapytaniu.
Zakładając, że działa zgodnie z planem (wyniki powinny wyglądać dokładnie tak samo jak pierwsze zapytanie), czas podzielić wyniki na różne kolumny dla różnych lat. Każdy element w instrukcji SELECT
tworzy kolumnę, więc będziesz musiał tworzyć oddzielną kolumnę dla każdego roku:
Technicznie rzecz biorąc, już osiągnąłeś cel ten samouczek. Ale nadal można by to trochę poprawić. Zauważysz, że powyższe zapytanie tworzy listę uporządkowaną alfabetycznie według konferencji. Bardziej sensowne może być dodanie kolumny „wszystkich graczy” i uporządkowanie według niej (od największej do najmniejszej):
I gotowe! Zobacz to w trybie.
Kolumny przestawne do wierszy
Wiele danych, które znajdziesz w Internecie, jest sformatowanych do użytku, a nie do analizy. Weźmy na przykład tę tabelę pokazującą liczbę trzęsień ziemi na całym świecie w latach 2000-2012:
W tym formacie trudno jest odpowiedzieć na pytania typu „co „Czy średnia wielkość trzęsienia ziemi?” Byłoby znacznie łatwiej, gdyby dane były wyświetlane w 3 kolumnach: „wielkość”, „rok” i „liczba trzęsień ziemi”. Oto „jak przekształcić dane do takiej postaci:
Najpierw sprawdź te dane w trybie:
Uwaga: kolumna nazwy zaczynają się od „rok_”, ponieważ tryb wymaga, aby nazwy kolumn zaczynały się od liter.
Pierwszą rzeczą do zrobienia w tym miejscu jest utworzenie tabeli zawierającej wszystkie kolumny z oryginalnej tabeli jako wiersze w nowej tabeli . Jeśli nie masz mnóstwa kolumn do przekształcenia, często najłatwiejszym sposobem jest wyszczególnienie ich w podzapytaniu:
Gdy już to zrobisz , możesz połączyć go krzyżowo z tabelą worldwide_earthquakes
, aby utworzyć widok rozszerzony:
Zwróć uwagę, że każdy wiersz w worldwide_earthquakes
jest powielane 13 razy. Ostatnią rzeczą do zrobienia jest naprawienie tego za pomocą instrukcji CASE
, która pobiera dane z właściwej kolumny w tabeli worldwide_earthquakes
o wartości w kolumna year
:
Wyświetl produkt końcowy w trybie.
Gratulujemy ukończenia samouczka zaawansowanego SQL! Teraz, gdy znasz już SQL, następnym krokiem jest udoskonalenie procesu analitycznego.
Specjalnie w tym celu stworzyliśmy sekcję Szkolenia SQL Analytics. Dzięki fałszywym zbiorom danych naśladującym rzeczywiste sytuacje możesz podejść do tej sekcji jak do szkolenia w miejscu pracy. Sprawdź to!