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 (ignoreNULL).MAX(column)/MIN(column)— la valeur maximale/minimale.SUM(column)— la somme des valeurs numériques.
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.
-- Stipendio medio dei soli dipendenti del Marketing (department_id = 3):
SELECT AVG(salary)
FROM employees
WHERE department_id = 3;Essayez-le
Combien de salariés ont été embauchés depuis le 1er janvier 2020 ? Renvoie un seul nombre (une ligne, une colonne).
Afficher l'indice
La fonction qui compte les lignes est COUNT(*).
Solution disponible après 3 tentatives
Exercice de révision
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.
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