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 l'attestation finale.
8 000 XOF / 12,20 € / 13,29 $
Débloquez les 78 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.