Leçon 6 sur 6

Calculer des indicateurs avec COUNT, SUM et AVG

Transformez un ensemble de lignes en indicateurs simples : volume, total et moyenne.

20 minAccès gratuit

À la fin de cette leçon

  • Compter des lignes avec COUNT
  • Additionner une colonne avec SUM
  • Calculer et interpréter une moyenne avec AVG

Une agrégation résume plusieurs lignes

Une table de commandes décrit des transactions individuelles. Une fonction d’agrégation transforme ces lignes en une valeur synthétique utile à un rapport.

Sans GROUP BY, la requête retourne une seule ligne pour l’ensemble filtré. Le niveau de détail du résultat devient donc global.

Trois indicateurs globaux
SELECT
  COUNT(*) AS nombre_commandes,
  SUM(montant) AS chiffre_affaires,
  AVG(montant) AS panier_moyen
FROM commandes;

COUNT compte des lignes ou des valeurs

COUNT(*) compte toutes les lignes qui restent après le filtre. COUNT(colonne) compte seulement les valeurs non NULL de cette colonne.

Cette différence permet de mesurer à la fois un volume total et le taux de renseignement d’une information facultative.

Commandes et références externes renseignées
SELECT
  COUNT(*) AS nombre_commandes,
  COUNT(reference_externe) AS references_renseignees
FROM commandes;
COUNT retourne 0 lorsqu’aucune ligne ne correspond au filtre. SUM et AVG peuvent retourner NULL sur un ensemble vide.

SUM additionne les valeurs numériques

SUM(montant) calcule le total des montants non NULL. Ajoutez un filtre pour définir précisément la période, le statut ou le périmètre concerné.

Un chiffre d’affaires n’est interprétable que si la requête précise quelles commandes sont incluses, par exemple uniquement les commandes payées.

Total des commandes payées
SELECT SUM(montant) AS chiffre_affaires
FROM commandes
WHERE statut = 'Payée';

AVG calcule la moyenne des valeurs non NULL

AVG(montant) additionne les montants renseignés puis divise par leur nombre. La fonction ignore les montants NULL, comme la plupart des agrégations.

Selon le moteur et le type numérique, le résultat peut contenir plusieurs décimales. ROUND permet de préparer un affichage à deux décimales.

Panier moyen arrondi
SELECT ROUND(AVG(montant), 2) AS panier_moyen
FROM commandes
WHERE statut = 'Payée';

WHERE définit le périmètre avant le calcul

Le filtre est appliqué avant les fonctions d’agrégation. Pour des KPI cohérents, utilisez exactement le même périmètre pour le nombre, le total et la moyenne.

Vous pouvez vérifier le calcul manuellement sur un petit échantillon : le total divisé par le nombre de montants renseignés doit correspondre à la moyenne.

  • Définissez le périmètre avant de choisir la formule.
  • Donnez un alias métier à chaque indicateur.
  • Contrôlez le total et la moyenne sur quelques lignes.
KPI des commandes payées
SELECT
  COUNT(*) AS nombre_commandes,
  SUM(montant) AS chiffre_affaires,
  ROUND(AVG(montant), 2) AS panier_moyen
FROM commandes
WHERE statut = 'Payée';

Prochaine étape : calculer un indicateur par groupe

Les agrégations de cette leçon produisent une ligne globale. GROUP BY permettra ensuite d’obtenir une ligne par statut, client, catégorie ou mois.

Avant de regrouper, assurez-vous de savoir expliquer le sens de COUNT, SUM et AVG sur l’ensemble complet.

Vérifiez votre compréhension

Pour les commandes payées, retournez leur nombre, leur montant total et leur montant moyen arrondi à deux décimales.

À compléter
SELECT
  -- trois indicateurs
FROM commandes
WHERE -- périmètre;

Progression locale

Avez-vous terminé cette leçon ?

Votre choix reste dans votre navigateur et ne nécessite aucun compte.

Leçon suivante