SQL Dojo Bêta
Indicateur

Expliquer une variation

Découper la variation d'une métrique en parts dont la somme la redonne : volume contre valeur, mix contre prix, puis par segment.

Un produit (chiffre d'affaires = commandes × panier moyen) se découpe en ΔN × panier₀ + N₁ × Δpanier. Une moyenne sur des groupes se découpe en mix Σ (part₁ − part₀) × taux₀ et prix Σ part₁ × (taux₁ − taux₀). Puis découpez la variation selon une dimension après l'autre (appareil, canal, ancienneté) et arrêtez-vous là où elle est concentrée, pas répartie. Comparez à la même période un an plus tôt, pas seulement au mois précédent.

WITH months(month, orders, revenue) AS (VALUES ('May', 33607, 6364573.92), ('June', 29889, 5687462.97)),
m AS (
  SELECT MAX(orders) FILTER (WHERE month = 'May') AS n0, MAX(revenue) FILTER (WHERE month = 'May') AS r0,
         MAX(orders) FILTER (WHERE month = 'June') AS n1, MAX(revenue) FILTER (WHERE month = 'June') AS r1
  FROM months
)
SELECT r1 - r0 AS change,
       ROUND((n1 - n0) * (r0 / n0), 2) AS volume_effect,
       ROUND(n1 * (r1 / n1 - r0 / n0), 2) AS value_effect
FROM m;
changevolume_effectvalue_effect
-677110.95-704123.7227012.77
L’essayer en Randori