Quale misura appartiene a quale tabella?
Lo stato appartiene all'ordine, il prezzo venduto e la quantità alla riga e il costo si riferisce al prodotto. La query deve riunire questi livelli di dettaglio senza aggiungere una misura ripetuta.
In questo caso educativo, fatturato = quantità × prezzo unitario e margine lordo = quantità × (prezzo unitario − costo). Un vero business deve specificare tasse, sconti, resi e metodo di costo.
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 p.categorie,
SUM(l.quantite * l.prix_unitaire) AS chiffre_affaires,
SUM(l.quantite * (l.prix_unitaire - p.cout)) AS marge
FROM commandes c
JOIN lignes_commandes l ON l.id_commande = c.id_commande
JOIN produits p ON p.id_produit = l.id_produit
WHERE c.statut = 'Pagato'
GROUP BY p.categorie
ORDER BY marge DESC;Leggi il risultato come un analista
Il filtro esclude gli ordini non confermati prima del calcolo. Ogni linea a pagamento contribuisce in base alla sua quantità, prezzo e costo.
Presentare sempre importo e tasso di margine insieme: una piccola categoria può avere un'ottima percentuale ma un contributo assoluto limitato.
- Documentare la formula e l'unità.
- Verifica stato incluso.
- Riconciliare l'AC con le linee.
- Confronta il margine assoluto e il tasso di margine.
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.
- Confusione tra fatturato e incasso.
- Dimentica resi o sconti dal perimetro reale.
- Aggiungi un importo per l'ordine ripetuto dopo JOIN.
- Dividere per zero il tasso di margine.
Mettiti in pratica
Completa l'esercizio Margine per categoria, quindi spiega in due frasi perché la classifica aziendale può differire dalla classifica delle vendite.
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.
