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 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.