Fonctions d'agrégation
Les fonctions d'agrégation, ou de groupement, sont des fonctions qui vont regrouper les lignes. Elles agissent sur une
colonne, et renvoient un résultat unique pour toutes les lignes sélectionnées (ou pour chaque groupe de lignes, mais nous
verrons cela plus tard).
Elles servent majoritairement à faire des statistiques, comme nous allons le voir dans la première partie de ce chapitre (compter
des lignes, connaître une moyenne, trouver la valeur maximale d'une colonne,…).
Nous verrons ensuite la fonction GROUP_CONCAT() qui, comme son nom l'indique, est une fonction de groupement qui sert à
concaténer des valeurs.
Fonctions statistiques
La plupart des fonctions d'agrégation vont vous permettre de faire des statistiques sur vos données.
Nombre de lignes
La fonction COUNT() permet de savoir combien de lignes sont sélectionnées par la requête.
Code : SQL
-- Combien de races avons-nous ? --- --------------------------------SELECT COUNT(*) AS nb_races
FROM Race;
-- Combien de chiens avons-nous ? --- --------------------------------SELECT COUNT(*) AS nb_chiens
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
WHERE Espece.nom_courant = 'Chien';
nb_races
8
nb_chiens
21
COUNT(*) ou COUNT(colonne)
Vous l'avez vu, j'ai utilisé COUNT(*) dans les exemples ci-dessus. Cela signifie que l'on compte tout simplement les lignes, sans
se soucier de ce qu'elles contiennent.
Par contre, si on utilise COUNT(colonne), seules les lignes dont la valeur de colonne n'est pas NULL seront prises en
compte.
Exemple : comptons les lignes de la table Animal, avec COUNT(*) et COUNT(race_id).
Code : SQL
SELECT COUNT(race_id), COUNT(*)
FROM Animal;
COUNT(race_id) COUNT(*)
31
60
Partie 3 : Fonctions : nombres, chaînes et agrégats
172/414
www.openclassrooms.com
Les fonctions d'agrégation, ou de groupement, sont des fonctions qui vont regrouper les lignes. Elles agissent sur une
colonne, et renvoient un résultat unique pour toutes les lignes sélectionnées (ou pour chaque groupe de lignes, mais nous
verrons cela plus tard).
Elles servent majoritairement à faire des statistiques, comme nous allons le voir dans la première partie de ce chapitre (compter
des lignes, connaître une moyenne, trouver la valeur maximale d'une colonne,…).
Nous verrons ensuite la fonction GROUP_CONCAT() qui, comme son nom l'indique, est une fonction de groupement qui sert à
concaténer des valeurs.
Fonctions statistiques
La plupart des fonctions d'agrégation vont vous permettre de faire des statistiques sur vos données.
Nombre de lignes
La fonction COUNT() permet de savoir combien de lignes sont sélectionnées par la requête.
Code : SQL
-- Combien de races avons-nous ? --- --------------------------------SELECT COUNT(*) AS nb_races
FROM Race;
-- Combien de chiens avons-nous ? --- --------------------------------SELECT COUNT(*) AS nb_chiens
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
WHERE Espece.nom_courant = 'Chien';
nb_races
8
nb_chiens
21
COUNT(*) ou COUNT(colonne)
Vous l'avez vu, j'ai utilisé COUNT(*) dans les exemples ci-dessus. Cela signifie que l'on compte tout simplement les lignes, sans
se soucier de ce qu'elles contiennent.
Par contre, si on utilise COUNT(colonne), seules les lignes dont la valeur de colonne n'est pas NULL seront prises en
compte.
Exemple : comptons les lignes de la table Animal, avec COUNT(*) et COUNT(race_id).
Code : SQL
SELECT COUNT(race_id), COUNT(*)
FROM Animal;
COUNT(race_id) COUNT(*)
31
60
Partie 3 : Fonctions : nombres, chaînes et agrégats
172/414
www.openclassrooms.com
