Leçon 9 / 9 — Chapitre 8: Mise en pratique : ventes mensuelles
Cas pratique final : les meilleurs vendeurs finissant en force
Ce cas pratique final combine un classement sur total agrégé (leçon 4) et une part de mois (leçon 3), pour répondre à une vraie question métier : quels sont les meilleurs vendeurs du trimestre, ET dont le dernier mois représente au moins la moitié de leur chiffre d'affaires ?
WITH totaux AS (
SELECT vendeur_id, SUM(montant) AS total_trimestre
FROM ventes_mensuelles
GROUP BY vendeur_id
),
classement AS (
SELECT t.vendeur_id, t.total_trimestre,
RANK() OVER (ORDER BY t.total_trimestre DESC) AS rang_general
FROM totaux t
),
dernier_mois AS (
SELECT vendeur_id, montant AS montant_mois3
FROM ventes_mensuelles
WHERE mois = 3
)
SELECT v.nom, c.total_trimestre, c.rang_general,
ROUND(100.0 * d.montant_mois3 / c.total_trimestre, 0) AS part_mois3
FROM classement c
JOIN dernier_mois d ON d.vendeur_id = c.vendeur_id
JOIN vendeurs v ON v.id = c.vendeur_id
WHERE c.rang_general <= 2 AND (100.0 * d.montant_mois3 / c.total_trimestre) >= 50
ORDER BY c.rang_general;
Étape par étape :
totauxagrège le chiffre d'affaires trimestriel par vendeur (GROUP BY classique).classementapplique RANK() sur ce résultat agrégé (leçon 4).dernier_moisisole le montant du mois 3 pour chaque vendeur.- Le filtre final ne garde que les 2 meilleurs vendeurs (rang_general <= 2) dont le mois 3 représente au moins 50 % de leur total.
Résultat : Tarek (rang 1, mois 3 = 600/1200 = 50 %) et Solene (rang 2, mois 3 = 500/1000 = 50 %) — les deux top vendeurs remplissent exactement ce critère.
À retenir :
- Ce cas pratique enchaîne trois CTE successives (agrégation, classement, isolement d'une colonne), chacune réutilisant le résultat de la précédente — une architecture lisible pour des questions métier à plusieurs critères.
À vous de jouer : combien de lignes ce résultat final contient-il ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 72 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès