Trasformare le righe in colonne
Fa parte della sezione Oltre le basi del percorso SQL di Coddy. Lezione 14 di 27.
Combina l'aggregazione condizionale con GROUP BY per trasformare le righe in colonne. È la versione SQL di una tabella pivot.
Supponiamo che sales abbia righe come (month, product, units). Per visualizzare una riga per mese con una colonna per prodotto:
SELECT
month,
SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b
FROM sales
GROUP BY monthIl gruppo GROUP BY che ogni SUM(CASE …) vede è costituito dalle righe di un mese; CASE seleziona la porzione relativa a un prodotto.
Sfida
FacileTabelle e colonne disponibili:
sales:month,product,units
Trasforma i dati in modo che ogni riga corrisponda a un month con queste colonne:
monthapples: totale diunitsper il prodotto'apples'in quel mesebananas: lo stesso per'bananas'cherries: lo stesso per'cherries'total: totale diunitsper tutti i prodotti in quel mese
Restituisci solo i mesi il cui total è almeno 20. Ordina per month.
Provalo tu
SELECT month,
-- one SUM(CASE ...) per product, plus total
FROM sales
GROUP BY month
-- filter to months with total >= 20
ORDER BY month
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Oltre le basi
2Funzioni sulle stringhe
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE e TRIMConcatenare con ||Ripasso - Fatture3Aggregazione condizionale
COUNT con CASESUM con CASETrasformare le righe in colonneRiepilogo - Fonti di trafficoEsercitati da solo: Playground SQL