Regroupement
Vous savez donc que les fonctions d'agrégation groupent plusieurs lignes ensemble. Jusqu'à maintenant, toutes les lignes
étaient chaque fois regroupées en une seule. Mais ce qui est particulièrement intéressant avec ces fonctions, c'est qu'il est
possible de regrouper les lignes en fonction d'un critère, et d'avoir ainsi plusieurs groupes distincts.
Par exemple, avec la fonction COUNT(*), vous pouvez compter le nombre de lignes que vous avez dans la table Animal. Mais
que diriez-vous de faire des groupes par espèces, et donc de savoir en une seule requête combien vous avez de chats, chiens,
etc. ? Un simple groupement, et c'est fait !
Au programme de ce chapitre :
les règles et la syntaxe à appliquer pour regrouper des lignes ;
le groupement sur plusieurs critères ;
les "super-agrégats" ;
la sélection de certains groupes sur la base de critères.
Regroupement sur un critère
Pour regrouper les lignes selon un critère, il faut utiliser GROUP BY, qui se place après l'éventuelle clause WHERE (sinon
directement après FROM), suivi du nom de la colonne à utiliser comme critère de regroupement.
Code : SQL
SELECT ...
FROM nom_table
[WHERE condition]
GROUP BY nom_colonne;
Exemple 1 : comptons les lignes dans la table Animal, en regroupant sur le critère de l'espèce (donc avec la colonne espece_id ).
Code : SQL
SELECT COUNT(*) AS nb_animaux
FROM Animal
GROUP BY espece_id;
nb_animaux
21
20
15
4
Exemple 2 : Même chose, mais on ne prend que les mâles cette fois-ci.
Code : SQL
SELECT COUNT(*) AS nb_males
FROM Animal
WHERE sexe = 'M'
GROUP BY espece_id;
nb_males
10
Partie 3 : Fonctions : nombres, chaînes et agrégats
176/414
www.openclassrooms.com
Précédent

- 176/413

Suivant