
SQL to potężny język zapytań, a jedną z jego ciekawszych funkcji jest PIVOT. Dzięki temu mechanizmowi możemy zmieniać orientację danych w tabelach, co ułatwia ich analizę i prezentację. W tym artykule wyjaśnię, jak działa PIVOT w języku SQL i pokażę konkretne przykłady zastosowania.
Co to jest PIVOT w SQL?
Funkcja PIVOT
pozwala przekształcać dane w taki sposób, by wartości z wybranej kolumny stały się nagłówkami kolumn w nowej tabeli. Jest to szczególnie przydatne, gdy chcemy agregować dane i prezentować je w bardziej czytelnej formie.
Podstawowa składnia PIVOT
Podstawowa składnia dla operacji PIVOT wygląda następująco:
SELECT * FROM
(
-- Podzapytanie zwracające dane wejściowe
) AS TabelaWejsciowa
PIVOT
(
-- Funkcja agregująca i kolumna przestawiana
SUM(KolumnaDoAgregacji)
FOR KolumnaPrzestawna IN ([NowaKolumna1], [NowaKolumna2], [NowaKolumna3])
) AS TabelaPivot;
Przyjrzyjmy się teraz, jak wykorzystać PIVOT
w praktyce.
Przykład – Sprzedaż produktów w różnych miesiącach
Załóżmy, że mamy tabelę o nazwie Sprzedaz
z następującymi danymi:
ID | Produkt | Miesiac | SumaSprzedazy |
---|---|---|---|
1 | Jabłka | Styczeń | 100 |
2 | Jabłka | Luty | 120 |
3 | Banany | Styczeń | 150 |
4 | Banany | Luty | 130 |
Chcemy przekształcić te dane tak, aby każdy miesiąc stał się osobną kolumną.
Zastosowanie PIVOT
Aby osiągnąć ten efekt, użyjemy zapytania:
SELECT * FROM
(
SELECT
Produkt,
Miesiac,
SumaSprzedazy
FROM Sprzedaz
) AS DaneWejsciowe
PIVOT
(
SUM(SumaSprzedazy)
FOR Miesiac IN ([Styczeń], [Luty])
) AS TabelaPrzestawiona;
Wynik tego zapytania będzie wyglądać następująco:
Produkt | Styczeń | Luty |
---|---|---|
Jabłka | 100 | 120 |
Banany | 150 | 130 |
Teraz możemy łatwo porównywać sprzedaż produktów w poszczególnych miesiącach.
Gdzie jeszcze można użyć PIVOT?
Transformacja danych za pomocą PIVOT
jest przydatna w wielu sytuacjach, m.in.:
- Analiza sprzedaży w różnych okresach czasu
- Przekształcanie danych ankietowych
- Generowanie raportów opartych na grupowaniu danych
Najczęstsze błędy przy użyciu PIVOT
Podczas pracy z PIVOT można natknąć się na pewne trudności:
- Brak wartości w kolumnie obrotowej – jeśli jakieś wartości są pominięte, mogą pojawić się puste pola.
- Błędna składnia – zapytanie PIVOT wymaga dokładnej definicji agregacji i wartości w klauzuli
IN()
. - Zbyt duża liczba kolumn – jeśli nie wiemy z góry, jakie wartości pojawiają się w przestawianej kolumnie, może być konieczne dynamiczne generowanie zapytania.
Podsumowanie
PIVOT
w języku SQL to świetne narzędzie do dynamicznego przekształcania danych. Dzięki niemu możemy łatwo zmieniać orientację tabel i prezentować informacje w bardziej czytelny sposób. Mam nadzieję, że te przykłady ułatwią Ci zrozumienie tej techniki i jej zastosowań w praktyce.
Inny ciekawy artykuł:
Jak działa UNNEST w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.