La condizione è su una linea o su un gruppo?
Uno stato o una data appartiene a una riga di origine: utilizzare WHERE. Dopo il raggruppamento esiste un totale, una media o un numero di ordini: utilizzare HAVING.
L'ordine ne modifica il significato. Escludere le righe cancellate prima di SUM non equivale a calcolare tutti gli stati e poi nascondere determinati gruppi.
La domanda è stata spiegata
Inizia definendo cosa dovrebbe rappresentare una riga del risultato. Questa decisione determina le colonne, i raggruppamenti e i controlli necessari.
L'esempio seguente isola il meccanismo principale. Eseguilo, osserva il risultato, quindi modifica una clausola alla volta per comprenderne l'effetto.
SELECT id_client, COUNT(*) AS commandes_payees
FROM commandes
WHERE statut = 'Pagato'
GROUP BY id_client
HAVING COUNT(*) >= 2;Leggi il risultato come un analista
WHERE prepara solo ordini pagati. GROUP BY crea una riga per cliente, quindi HAVING mantiene volumi di almeno due.
Separa mentalmente questi passaggi e monitora il numero di record restituiti in ciascuno di essi quando la query diventa complessa.
- Formulare il perimetro delle linee.
- Imposta il livello di dettaglio per i gruppi.
- Applica la soglia all'aggregazione.
- Confrontare il totale complessivo con la somma dei gruppi.
Errori che distorcono l'analisi
Una query può essere valida senza rispondere correttamente alla domanda. Gli errori più costosi spesso sono silenziosi: perimetro sbagliato, linea moltiplicata o valore mancante interpretato come zero.
Prima di condividere il risultato, confrontalo con un piccolo campione calcolato manualmente e mantieni la definizione dell'ambito con la query.
- Scrivere WHERE COUNT(*).
- Filtrare importo >= soglia anziché SUM(importo) >= soglia.
- Dimentica GROUP BY.
- Confronta gruppi costruiti con perimetri diversi.
Mettiti in pratica
Esegui l'esercizio HAVING sul paniere medio, quindi modifica la soglia per osservare i gruppi mantenuti.
Il simulatore SQL di SQL.tn esegue solo query di lettura su dati fittizi nel tuo browser. Puoi provare più scritture e confrontare i risultati senza installare alcun software.
Metti in pratica questa guida.
Apri l’esercizio collegato, esegui la query e confronta il risultato atteso.
