Leçon 1 / 9 — Chapitre 8: Mise en pratique : ventes mensuelles
Présentation : RANK pour le classement mensuel des vendeurs
Nouveau secteur pour ce chapitre : une équipe commerciale suit les ventes mensuelles de ses vendeurs (montants en dollars, plus haut = meilleure performance — comme la plupart des exemples de ce module, à l'inverse du chapitre 7).
vendeurs
id | nom | region
1 | Fatou | est
2 | Karim | est
3 | Solene | ouest
4 | Tarek | ouest
ventes_mensuelles
id | vendeur_id | mois | montant
1 | 1 | 1 | 100
2 | 1 | 2 | 150
3 | 1 | 3 | 250
4 | 2 | 1 | 150
5 | 2 | 2 | 150
6 | 2 | 3 | 300
7 | 3 | 1 | 200
8 | 3 | 2 | 300
9 | 3 | 3 | 500
10 | 4 | 1 | 300
11 | 4 | 2 | 300
12 | 4 | 3 | 600
SELECT v.nom, vm.mois, vm.montant,
RANK() OVER (PARTITION BY vm.mois ORDER BY vm.montant DESC) AS rang_mois
FROM ventes_mensuelles vm
JOIN vendeurs v ON v.id = vm.vendeur_id;
Au mois 1, les montants triés du plus haut au plus bas sont : 300 (Tarek), 200 (Solene), 150 (Karim), 100 (Fatou) — Tarek obtient rang_mois = 1.
À retenir :
- Ce montage (JOIN entre une table de dimension comme vendeurs et une table de faits comme ventes_mensuelles, puis RANK dessus) est un schéma très courant en analyse commerciale.
À vous de jouer : qui obtient le rang_mois 1 au mois 3 (montants : Fatou 250, Karim 300, Solene 500, Tarek 600) ?
À vous de jouer
À faireVoici une table vendeurs :
vendeurs
id | nom | region
1 | Fatou | est
2 | Karim | est
3 | Solene | ouest
4 | Tarek | ouest
Et une table ventes_mensuelles (montants en dollars, mois 3 : Fatou 250, Karim 300, Solene 500, Tarek 600) :
Avec RANK() OVER (PARTITION BY mois ORDER BY montant DESC) AS rang_mois, qui obtient rang_mois = 1 au mois 3 ?
Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.
💡 Un prénom.
À vous de jouer
À faireDans ce même mois 3, quel rang_mois obtient Fatou (250 $, le montant le plus bas) ?
Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.
💡 Un nombre.