PaliSkill
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