UNPIVOT (SQL)
Przeciwieństwo PIVOT — zamienia kolumny na wiersze. Przekształca szeroką tabelę (kolumna na miesiąc: sty, lut, mar …) w wąską, z wierszem na każdą parę (miesiąc, wartość). Przydaje się do sprowadzenia danych „w stylu arkusza” do postaci wygodnej dla zapytań.
Typowy przypadek: ktoś dostarcza dane w postaci szerokiej (każdy pomiar w osobnej kolumnie), a do agregacji, filtrowania i złączeń potrzebna jest postać długa, znormalizowana. SQL Server i Oracle mają składnię UNPIVOT. Przenośny wzorzec w PostgreSQL to SELECT id, 'jan' AS month, jan AS value FROM t UNION ALL SELECT id, 'feb', feb FROM t ... albo bardziej elegancko LATERAL (VALUES (...)). PostgreSQL pozwala też użyć unnest() na tablicach. Reguła kciuka: „format długi” (wąski) jest niemal zawsze lepszy do analizy i przechowywania niż „format szeroki” — UNPIVOT to narzędzie, które tam prowadzi. Uzupełnienie PIVOT, tylko w drugą stronę.