Jak działa PIVOT w języku SQL? Przykłady zastosowania

Jak działa PIVOT w języku SQL? Przykłady zastosowania

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:

  1. Brak wartości w kolumnie obrotowej – jeśli jakieś wartości są pominięte, mogą pojawić się puste pola.
  2. Błędna składnia – zapytanie PIVOT wymaga dokładnej definicji agregacji i wartości w klauzuli IN().
  3. 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

KajoDataSpace