Passer au contenu principal
eLearner.app
Module 2 · Leçon 4 sur 48/57 dans le cours~8 min
Leçons du module (4/4)

Compter et résumer : COUNT, AVG, MAX

Jusqu'à présent, chaque SELECT renvoyait une ligne pour chaque ligne du tableau. Les fonctions d'agrégation font le contraire : elles lisent de nombreuses lignes et renvoient une valeur unique qui les résume.

Les plus courants sont :

  • COUNT(*) — combien de lignes y a-t-il.
  • AVG(column) — la moyenne des valeurs numériques (ignore NULL).
  • MAX(column) / MIN(column) — la valeur maximale/minimale.
  • SUM(column) — la somme des valeurs numériques.
SQL
SELECT COUNT(*),
       AVG(salary),
       MAX(salary)
FROM employees;

Lorsque l'agrégat est appliqué à l'ensemble de la table (sans GROUP BY, qui vous verrez dans le module suivant), le résultat est une seule ligne, peu importe du nombre de lignes de la table source.

Combiner avec OÙ

WHERE filtre avant l'agrégation : l'agrégat ne fonctionne que sur les lignes qui a passé le filtre.

SQL
-- Stipendio medio dei soli dipendenti del Marketing (department_id = 3):
SELECT AVG(salary)
FROM employees
WHERE department_id = 3;

Essayez-le

Exercice#sql.m2.l4.e1
Tentatives : 0Chargement…

Combien de salariés ont été embauchés depuis le 1er janvier 2020 ? Renvoie un seul nombre (une ligne, une colonne).

Chargement de l'éditeur…
Afficher l'indice

La fonction qui compte les lignes est COUNT(*).

Solution disponible après 3 tentatives

Exercice de révision

Exercice#sql.m2.l4.e2
Tentatives : 0Chargement…

En une seule requête, calculez le salaire moyen (AVG) et maximum (MAX) des employés du marketing (department_id = 3). Une ligne, deux colonnes.

Chargement de l'éditeur…
Afficher l'indice

Vous pouvez mettre plusieurs fonctions d'agrégation dans le même SELECT, séparées par des virgules.

Solution disponible après 3 tentatives