← SQL — Fonctions de fenêtrage
Leçon 6 / 9 — Chapitre 8: Mise en pratique : ventes mensuelles
RANK par région
PARTITION BY region classe chaque vendeur uniquement parmi les autres vendeurs de sa propre région.
WITH totaux AS (
SELECT vm.vendeur_id, v.region, SUM(vm.montant) AS total_trimestre
FROM ventes_mensuelles vm
JOIN vendeurs v ON v.id = vm.vendeur_id
GROUP BY vm.vendeur_id, v.region
)
SELECT vendeur_id, region, total_trimestre,
RANK() OVER (PARTITION BY region ORDER BY total_trimestre DESC) AS rang_region
FROM totaux;
Région est : Karim (600) devance Fatou (500) — rang_region 1 et 2. Région ouest : Tarek (1200) devance Solene (1000) — rang_region 1 et 2.
À retenir :
- Ce classement par région ne dépend que des vendeurs de la même région : Karim (600) est 1er de sa région est, alors qu'il ne serait que 3e au classement général (leçon 4 de ce chapitre) — la portée du PARTITION BY change le résultat, comme vu au chapitre 7.
À vous de jouer : quel rang_region obtient Solene (total 1000, région ouest, derrière Tarek à 1200) ?
🔒
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