GROUP BY nom_courant;
nom_courant
nb_animaux
Chat
20
Chien
21
Perroquet amazone 4
Rat brun
0
Tortue d'Hermann 15
C'est pas magique ça ?
Regroupement sur plusieurs critères
J'ai mentionné le fait qu'il était possible de grouper sur plusieurs colonnes, mais jusqu'à maintenant, cela n'a servi qu'à pouvoir
afficher correctement les colonnes voulues, sans que ça n'influe sur les groupes. On n'avait donc en fait qu'un seul critère,
représenté par plusieurs colonnes. Voyons maintenant un exemple avec deux critères différents (qui ne créent pas les mêmes
groupes).
Les deux requêtes suivantes permettent de savoir combien d'animaux de chaque espèce vous avez dans la table Animal, ainsi
que combien de mâles et de femelles, toutes espèces confondues.
Code : SQL
SELECT nom_courant, COUNT(*) as nb_animaux
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
GROUP BY nom_courant;
SELECT sexe, COUNT(*) as nb_animaux
FROM Animal
GROUP BY sexe;
nom_courant
nb_animaux
Chat
20
Chien
21
Perroquet amazone 4
Tortue d'Hermann 15
sexe nb_animaux
NULL 3
F
31
M
26
En faisant un regroupement multicritère, il est possible de savoir facilement combien de mâles et de femelles par espèce il y a
dans la table Animal. Notez que l'ordre des critères a son importance.
Exemple 1 : on regroupe d'abord sur l'espèce, puis sur le sexe.
Code : SQL
Partie 3 : Fonctions : nombres, chaînes et agrégats
181/414
www.openclassrooms.com
nom_courant
nb_animaux
Chat
20
Chien
21
Perroquet amazone 4
Rat brun
0
Tortue d'Hermann 15
C'est pas magique ça ?
Regroupement sur plusieurs critères
J'ai mentionné le fait qu'il était possible de grouper sur plusieurs colonnes, mais jusqu'à maintenant, cela n'a servi qu'à pouvoir
afficher correctement les colonnes voulues, sans que ça n'influe sur les groupes. On n'avait donc en fait qu'un seul critère,
représenté par plusieurs colonnes. Voyons maintenant un exemple avec deux critères différents (qui ne créent pas les mêmes
groupes).
Les deux requêtes suivantes permettent de savoir combien d'animaux de chaque espèce vous avez dans la table Animal, ainsi
que combien de mâles et de femelles, toutes espèces confondues.
Code : SQL
SELECT nom_courant, COUNT(*) as nb_animaux
FROM Animal
INNER JOIN Espece ON Espece.id = Animal.espece_id
GROUP BY nom_courant;
SELECT sexe, COUNT(*) as nb_animaux
FROM Animal
GROUP BY sexe;
nom_courant
nb_animaux
Chat
20
Chien
21
Perroquet amazone 4
Tortue d'Hermann 15
sexe nb_animaux
NULL 3
F
31
M
26
En faisant un regroupement multicritère, il est possible de savoir facilement combien de mâles et de femelles par espèce il y a
dans la table Animal. Notez que l'ordre des critères a son importance.
Exemple 1 : on regroupe d'abord sur l'espèce, puis sur le sexe.
Code : SQL
Partie 3 : Fonctions : nombres, chaînes et agrégats
181/414
www.openclassrooms.com
