Menu
Coddy logo textTech

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 month

Il gruppo GROUP BY che ogni SUM(CASE …) vede è costituito dalle righe di un mese; CASE seleziona la porzione relativa a un prodotto.

challenge icon

Sfida

Facile

Tabelle e colonne disponibili:

  • sales: month, product, units

Trasforma i dati in modo che ogni riga corrisponda a un month con queste colonne:

  • month
  • apples: totale di units per il prodotto 'apples' in quel mese
  • bananas: lo stesso per 'bananas'
  • cherries: lo stesso per 'cherries'
  • total: totale di units per 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
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Oltre le basi

Esercitati da solo: Playground SQL