PaliSkill
SQL — Fonctions de fenêtrage

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