count
select count(*) as totale
from ordini;
sum/avg
select avg(totale) as media
from ordini;
group by
select stato, count(*)
from ordini
group by stato;
having
select stato, count(*) as totale
from ordini
group by stato
having count(*) > 5;
panoramica
In questo capitolo su aggregazioni e group by, metriche, count, sum, avg e having. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.
Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).
badge: aggregation
obiettivi
- capire e applicare count in uno scenario reale
- capire e applicare sum/avg in uno scenario reale
- capire e applicare group by in uno scenario reale
- capire e applicare having in uno scenario reale
scheda rapida
SELECT categoria, COUNT(*) AS tot
FROM prodotti
WHERE attivo = TRUE
GROUP BY categoria
ORDER BY tot DESC
LIMIT 5;
Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.
tips
- usa alias chiari
- filtra presto con WHERE
- controlla i piani di esecuzione
- usa GROUP BY con attenzione
- metti filtri aggregati in HAVING
- controlla i NULL
tip: Se la media sembra strana, controlla prima i NULL.
mini progetto
KPI mensili per team.
- group by mese
- calcola SUM/AVG
- aggiungi HAVING
- ordina per performance
output atteso: uno script o query ripetibile con risultati verificabili.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale