Cours CPTIC 157
Bases de données sur Internet
16 et 17 avril 2002

La clause GROUP BY

L'instruction GROUP BY sert à rassembler tous les enregistrements qui contiennent des données dans la ou les colonnes spécifiées, et va permettre l'utilisation des fonctions d'aggrégations sur une ou plusieurs colonnes.

SELECT colonne1,fonction(colonne2)
FROM NomDeLaTable
GROUP BY listeDeColonnes

Le plus simple est de démontrer ceci avec un exemple: Supposons que vous voulez obtenir la moyenne d'âge, ainsi que l'âge du cadet et de l'ainé de chaque volée de la table Eleve:

SELECT groupe, AVG(age), MIN(age), MAX(age)
FROM Eleve
GROUP BY volee

Que faire si je désire afficher le nom du cadet et de l'ainé de chaque volée ?

La réponse n'est pas simple, contrairement à ce qui est proposé sur le site original de ce tutoriel. Nous y reviendrons plus tard...

Exercices

Soit les tables Client et Commande:

  1. Combien de personnes y a-t-il dans chaque canton de la table Clients ?
  2. Sélectionner l'article, le prix minimum et le prix maximum pour chaque article de la table Commande.
  3. Combien de commandes a fait chaque client ? Sélectionner le numéro de client, le nombre de commandes, ainsi que la somme de ces commandes.