Menu
Coddy logo textTech

SUM con CASE

Fa parte della sezione Oltre le basi del percorso SQL di Coddy. Lezione 13 di 27.

La stessa idea funziona con SUM: ed è ancora più flessibile. CASE può restituire 1 per le righe corrispondenti e 0 per tutto il resto, oppure può restituire qualsiasi valore numerico per attribuire pesi diversi alle righe.

SELECT
    SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) AS active_count,
    SUM(CASE WHEN plan = 'pro' THEN amount ELSE 0 END) AS pro_revenue
FROM users

SUM(CASE … THEN 1 ELSE 0 END) e COUNT(CASE … THEN 1 END) danno lo stesso risultato per il conteggio; scegli lo stile che preferisce il tuo team.

challenge icon

Sfida

Facile

Tabelle e colonne disponibili:

  • transactions: id, category, type, amount

type è 'sale' oppure 'refund'. Per ogni category restituisci:

  • category
  • net_revenue: somma degli importi delle vendite meno somma degli importi dei rimborsi

Calcola net_revenue in una singola espressione SUM(CASE …), in cui i rimborsi contribuiscono con il loro importo come numero negativo. Ordina per net_revenue in ordine decrescente.

Provalo tu

SELECT category,
       -- un SUM(CASE ...) in cui i rimborsi vengono conteggiati come valori negativi
FROM transactions
GROUP BY category
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