Groupement de résultats (group by)
Groupement des résultats : GROUP BY
La clause GROUP BY nous permet d'effectuer des requêtes plus complexes, comme des calculs mais en incluant aussi les lignes. Si on désire sortir par exemple, le meilleur étudiant de chaque région, en affichant sa moyenne et son prénom.
Requête SQL :
SELECT domicile, prenom, MAX( moyenne ) AS maxmoy FROM etudiant GROUP BY domicile;
Résultat :
domicile | prenom | maxmoy |
---|---|---|
Beaurepaire | Daniel | 17 |
Grenoble | Adrien | 16 |
Lyon | Daniel | 18 |
Roussillon | Rita | 12 |
St Rambert | Valérie | 19 |
St Vallier | Alvaro | 19 |
Une des applications les plus intéressantes de GROUP BY est de l'associer à la clause HAVING. Ceci permet d'appliquer une restriction sur les groupes créés par GROUP BY.
Par précaution, on ajoute HAVING moyenne ISNOTNULL à la fin de la requête pour ne pas prendre les valeurs 'null'.