Co to jest PIVOT i UNPIVOT w SQL?

Co to jest PIVOT i UNPIVOT w SQL?

W świecie baz danych, SQL (Structured Query Language) jest podstawowym narzędziem do zarządzania i manipulowania danymi. Dwie z bardziej zaawansowanych funkcji SQL to PIVOT i UNPIVOT, które umożliwiają przekształcanie danych w różne formy, co jest szczególnie przydatne w analizie danych. W tym artykule omówimy, czym są te funkcje, jak działają, oraz przedstawimy przykłady ich zastosowania.

PIVOT w SQL

Funkcja PIVOT w SQL służy do przekształcania danych z formatu wierszowego na kolumnowy. Jest to szczególnie przydatne, gdy chcemy przedstawić dane w bardziej czytelny sposób, na przykład w raportach lub dashboardach.

Przykład zastosowania PIVOT

Załóżmy, że mamy tabelę sprzedaży, która zawiera dane o sprzedaży produktów w różnych miesiącach:

Produkt Miesiąc Sprzedaż
Produkt A Styczeń 100
Produkt A Luty 150
Produkt B Styczeń 200
Produkt B Luty 250

Chcemy przekształcić te dane, aby każdy produkt miał swoje kolumny dla poszczególnych miesięcy. Możemy to zrobić za pomocą funkcji PIVOT:


SELECT Produkt, 
       [Styczeń], 
       [Luty]
FROM 
(
    SELECT Produkt, Miesiąc, Sprzedaż
    FROM Sprzedaz
) AS SourceTable
PIVOT
(
    SUM(Sprzedaż)
    FOR Miesiąc IN ([Styczeń], [Luty])
) AS PivotTable;

Wynik tej operacji będzie wyglądał następująco:

Produkt Styczeń Luty
Produkt A 100 150
Produkt B 200 250

UNPIVOT w SQL

Funkcja UNPIVOT działa odwrotnie do PIVOT, przekształcając dane z formatu kolumnowego na wierszowy. Jest to przydatne, gdy chcemy znormalizować dane lub przygotować je do dalszej analizy.

Przykład zastosowania UNPIVOT

Załóżmy, że mamy tabelę z danymi sprzedaży w formacie kolumnowym:

Produkt Styczeń Luty
Produkt A 100 150
Produkt B 200 250

Chcemy przekształcić te dane na format wierszowy. Możemy to zrobić za pomocą funkcji UNPIVOT:


SELECT Produkt, 
       Miesiąc, 
       Sprzedaż
FROM 
(
    SELECT Produkt, [Styczeń], [Luty]
    FROM Sprzedaz
) AS SourceTable
UNPIVOT
(
    Sprzedaż FOR Miesiąc IN ([Styczeń], [Luty])
) AS UnpivotTable;

Wynik tej operacji będzie wyglądał następująco:

Produkt Miesiąc Sprzedaż
Produkt A Styczeń 100
Produkt A Luty 150
Produkt B Styczeń 200
Produkt B Luty 250

Zastosowania PIVOT i UNPIVOT

Funkcje PIVOT i UNPIVOT są szeroko stosowane w różnych dziedzinach, takich jak:

  • Analiza biznesowa: Przekształcanie danych sprzedażowych, finansowych i operacyjnych w bardziej czytelne formy.
  • Raportowanie: Tworzenie raportów, które wymagają dynamicznego przekształcania danych.
  • Data Warehousing: Normalizacja i denormalizacja danych w hurtowniach danych.

Podsumowanie

Funkcje PIVOT i UNPIVOT w SQL są potężnymi narzędziami do przekształcania danych, które mogą znacznie ułatwić analizę i raportowanie. PIVOT pozwala na przekształcanie danych z formatu wierszowego na kolumnowy, co jest przydatne w tworzeniu czytelnych raportów. Z kolei UNPIVOT umożliwia przekształcanie danych z formatu kolumnowego na wierszowy, co jest przydatne w normalizacji danych. Znajomość tych funkcji i umiejętność ich zastosowania może znacząco zwiększyć efektywność pracy z bazami danych.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Scroll to Top