Leçon 9 / 9 — Chapitre 4: Agrégats de fenêtre et cadres
Cas pratique : le total cumulé de la dernière ligne égale le total de la partition
Ce cas pratique vérifie une propriété toujours vraie : sur la dernière ligne d'une partition (selon l'ORDER BY du cumul), le total cumulé et le total de toute la partition sont nécessairement égaux.
SELECT boutique, mois, montant,
SUM(montant) OVER (PARTITION BY boutique ORDER BY mois) AS total_cumule,
SUM(montant) OVER (PARTITION BY boutique) AS total_partition
FROM ventes_boutique
ORDER BY boutique, mois;
Pour Nord au mois 3 (la dernière ligne de sa partition) : total_cumule = 100 + 150 + 200 = 450, et total_partition = 450 également — les deux colonnes coïncident. Pour Nord au mois 1 ou 2, en revanche, total_cumule (100, puis 250) reste inférieur à total_partition (450 dans les deux cas), puisque tout n'a pas encore été accumulé.
Étape par étape :
total_cumulegrandit ligne après ligne jusqu'à la dernière de la partition.total_partitionreste constant, égal à la somme de toute la partition, sur chaque ligne.- Par construction, ces deux valeurs ne peuvent que se rejoindre exactement sur la toute dernière ligne (celle qui a fini d'accumuler tout le monde).
À retenir :
- Cette égalité sur la dernière ligne n'est pas une coïncidence : elle découle directement de la définition du cadre par défaut (cumul depuis le début jusqu'à la ligne courante).
- Vérifier qu'une telle propriété tient sur des données connues est une bonne façon de valider qu'une requête à fenêtre se comporte comme prévu.
À vous de jouer : pour la boutique Sud, total_cumule et total_partition sont-ils égaux au mois 3 (la dernière ligne) ? Et au mois 1 ?
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