UNPIVOT (SQL)
L'opposto di PIVOT: trasforma colonne in righe, convertendo una tabella larga (una colonna per mese: gen, feb, mar …) in una stretta con una riga per ogni coppia (mese, valore), utile per portare dati «a foglio di calcolo» in una forma adatta alle query.
Caso d'uso: qualcuno consegna i dati in forma larga (ogni misurazione in una colonna), ma per aggregare, filtrare e fare join serve la forma lunga, normalizzata. SQL Server e Oracle hanno la sintassi UNPIVOT. In PostgreSQL un modello portabile è SELECT id, 'gen' AS mese, gen AS valore FROM t UNION ALL SELECT id, 'feb', feb FROM t ..., oppure, in modo più elegante, LATERAL (VALUES (...)); si può anche usare unnest() con gli array. Regola pratica: il «formato lungo» è quasi sempre preferibile al «formato largo» per analisi e archiviazione, e UNPIVOT è lo strumento per arrivarci. Complemento di PIVOT, che fa il percorso inverso.