← SQL — Fonctions de fenêtrage
Leçon 4 / 9 — Chapitre 4: Agrégats de fenêtre et cadres
COUNT() OVER : un compteur cumulé ou un total fixe
COUNT(*) OVER (...) suit la même règle que SUM et AVG : avec ORDER BY, un compteur qui progresse ligne par ligne ; sans ORDER BY, le nombre total de lignes de la partition, répété partout.
SELECT boutique, mois,
COUNT(*) OVER (PARTITION BY boutique ORDER BY mois) AS rang_cumule,
COUNT(*) OVER (PARTITION BY boutique) AS total_lignes
FROM ventes_boutique;
Pour Nord : rang_cumule vaut 1, 2, 3 sur les mois 1, 2, 3 respectivement (il progresse), alors que total_lignes vaut 3 sur les trois lignes (le nombre total de lignes de la partition Nord).
À retenir :
COUNT(*) OVER (... ORDER BY ...)compte le nombre de lignes jusqu'à la ligne courante (incluse) — un compteur cumulé, équivalent numérique de ROW_NUMBER() en l'absence d'ex-aequo affectant le compte.COUNT(*) OVER (PARTITION BY ...), sans ORDER BY, donne directement la taille de la partition.
À vous de jouer : quelles sont les valeurs de rang_cumule et de total_lignes pour la boutique Sud au mois 2 ?
🔒
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