Leçon 4 / 9 — Chapitre 6: Combiner fenêtres, CASE et sous-requêtes
Filtrer sur un cumul conditionnel via une sous-requête
Comme toujours, filtrer sur le résultat d'une fonction de fenêtre — même un cumul conditionnel — exige de passer par une CTE ou une sous-requête.
WITH cumul AS (
SELECT boutique, mois, montant,
SUM(CASE WHEN montant > 100 THEN montant ELSE 0 END) OVER (PARTITION BY boutique ORDER BY mois) AS cumul_grosses_ventes
FROM ventes_boutique
)
SELECT boutique, mois
FROM cumul
WHERE cumul_grosses_ventes > 0
ORDER BY boutique, mois;
Pour Nord : les mois 2 et 3 ont un cumul_grosses_ventes strictement positif (150 et 350) ; le mois 1 (cumul 0) est exclu. Pour Sud : seul le mois 3 (cumul 140) est gardé, les mois 1 et 2 ayant un cumul encore à 0 à ce stade.
Résultat final : 3 lignes (Nord mois 2, Nord mois 3, Sud mois 3).
À retenir :
- Ce filtre combine trois notions déjà vues séparément : CASE, agrégat de fenêtre, et filtrage via CTE — la maîtrise de chacune permet de les assembler sans effort.
À vous de jouer : la boutique Sud au mois 1 apparaît-elle dans ce résultat ? Justifiez à partir de la valeur de son cumul_grosses_ventes.
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