i |
Utilisation de GROUP BY |
La difficulté majeure, quand on commence avec les fonctions d'agrégat dans SQL, c'est la clause de regroupement
(celle qui s'appelle "Groupe" dans le mode ébauche et qui s'énonce "Group by" en langage SQL) ; pour ma part, j'ai
fini par réussir à les utiliser quand, loin de toutes les explications techniques, j'ai retenu qu'il fallait placer, derrière le
"Group by", tous les champs qui figuraient derrière le "Select" et qui n'étaient pas affectés d'une fonction
d'agrégation.
Par exemple dans une requête débutant par :
select count(Id) as "Nbre", auteur, type_ouvrage, sum(ventes) as "Diffusion" from collection
il va te falloir insérer un Group by si tu veux que ta requête fonctionne et derrière ce Group by, devront figurer les
champs auteur et type_ouvrage ; ça donnera :
select count(Id) as "Nbre", auteur, type_ouvrage, sum(ventes) as "Diffusion" from collection Group by auteur,
type_ouvrage.
Cette requête te donnera le nombre de romans, de nouvelles, de pièces de théâtre écrites par chaque auteur
présent dans la table "collection" ainsi que le nombre vendu pour chaque type d'ouvrage ; quelque chose du genre :
4 Victor Hugo Roman 250.000
2 Victor Hugo Théâtre 123.000
3 Arthur Rimbaud Poésie 140.000
14 Molière Théâtre 364.000
8 Jean-Paul Sartre Roman 56.000
3 Jean-Paul Sartre Théâtre 42.000
2 Jean-Paul Sartre Essai 68.000