SELECT nom_courant, sexe, COUNT(*) as nb_animaux
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
GROUP BY nom_courant, sexe;
nom_courant
sexe nb_animaux
Chat
NULL 2
Chat
F
9
Chat
M
9
Chien
F
11
Chien
M
10
Perroquet amazone F
1
Perroquet amazone M
3
Tortue d'Hermann NULL 1
Tortue d'Hermann F
10
Tortue d'Hermann M
4
Exemple 2 : on regroupe d'abord sur le sexe, puis sur l'espèce.
Code : SQL
SELECT nom_courant, sexe, COUNT(*) as nb_animaux
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
GROUP BY sexe,nom_courant;
nom_courant
sexe nb_animaux
Chat
NULL 2
Tortue d'Hermann NULL 1
Chat
F
9
Chien
F
11
Perroquet amazone F
1
Tortue d'Hermann F
10
Chat
M
9
Chien
M
10
Perroquet amazone M
3
Tortue d'Hermann M
4
Étant donné que le regroupement par sexe donnait trois groupes différents, et le regroupement par espèce donnait quatre
groupes différents, il peut y avoir jusqu'à douze (3 x 4) groupes lorsque l'on regroupe en se basant sur les deux critères. Ici, il y
en aura moins puisque le sexe de tous les chiens et de tous les perroquets est défini (pas de NULL).
Super-agrégats
Parlons maintenant de l'option WITH ROLLUP de GROUP BY. Cette option va afficher des lignes supplémentaires dans la table
Partie 3 : Fonctions : nombres, chaînes et agrégats
182/414
www.openclassrooms.com
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
GROUP BY nom_courant, sexe;
nom_courant
sexe nb_animaux
Chat
NULL 2
Chat
F
9
Chat
M
9
Chien
F
11
Chien
M
10
Perroquet amazone F
1
Perroquet amazone M
3
Tortue d'Hermann NULL 1
Tortue d'Hermann F
10
Tortue d'Hermann M
4
Exemple 2 : on regroupe d'abord sur le sexe, puis sur l'espèce.
Code : SQL
SELECT nom_courant, sexe, COUNT(*) as nb_animaux
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
GROUP BY sexe,nom_courant;
nom_courant
sexe nb_animaux
Chat
NULL 2
Tortue d'Hermann NULL 1
Chat
F
9
Chien
F
11
Perroquet amazone F
1
Tortue d'Hermann F
10
Chat
M
9
Chien
M
10
Perroquet amazone M
3
Tortue d'Hermann M
4
Étant donné que le regroupement par sexe donnait trois groupes différents, et le regroupement par espèce donnait quatre
groupes différents, il peut y avoir jusqu'à douze (3 x 4) groupes lorsque l'on regroupe en se basant sur les deux critères. Ici, il y
en aura moins puisque le sexe de tous les chiens et de tous les perroquets est défini (pas de NULL).
Super-agrégats
Parlons maintenant de l'option WITH ROLLUP de GROUP BY. Cette option va afficher des lignes supplémentaires dans la table
Partie 3 : Fonctions : nombres, chaînes et agrégats
182/414
www.openclassrooms.com
