SQL Dojo Beta
Indicatore

Fatturato

Una sola definizione per tutta la caffetteria: quantity * unit_price delle righe d'ordine, esclusi gli ordini annullati.
SELECT SUM(l.quantity * l.unit_price) AS revenue
FROM orders o
JOIN order_lines l ON l.order_id = o.order_id
WHERE o.status <> 'cancelled'

Questo è il fatturato ordinato: contano gli ordini in attesa e pagati, non quelli annullati. L'importo incassato è un'altra metrica, letta da payments. Ogni step che dice "fatturato" usa questa definizione. Quando due report non concordano, confronta le loro definizioni prima del loro SQL. Scrivi una metrica una volta, in un solo posto (una vista, un modello dbt, un semantic layer), e riutilizzala.

SELECT EXTRACT(YEAR FROM o.ordered_at) AS year,
       SUM(l.quantity * l.unit_price) AS revenue
FROM orders o
JOIN order_lines l ON l.order_id = o.order_id
WHERE o.status <> 'cancelled'
GROUP BY 1
ORDER BY 1;
yearrevenue
202481511.00
202578934.40
Provalo in Randori