Previous Up Next
Université Lille 3-Charles de GaulleUFR de Mathématiques Sciences Économiques et Sociales

Chapitre 42  Les groupes

42.1  Utilisation de fonctions de groupe

Par exemple : AVG (moyenne), MIN (minimum), MAX (maximum), COUNT (dénombrement)...

Ces fonctions travaillent au niveau de groupe de lignes et non plus au niveau des lignes.

Par exemple pour rechercher la moyenne des salaires des secrétaires :
  SELECT AVG(SALAIRE)
    FROM EMP
   WHERE TITRE = 'Secretaire' 
  ;
Avec SELECT on ne peut pas travailler à la fois au niveau des lignes et des groupes.

Si vous recherchez le nom et la moyenne des salaires des employés (cette phrase a-t-elle d'ailleurs un sens ?), vous allez essayer :
  SELECT NOM, AVG(SALAIRE) 
  FROM EMP 
  ;
Ce qui ne produira qu'un message d'erreur.

Par contre avec deux SELECT imbriqués on peut rechercher le nom et le salaire de l'employé dont le salaire est le plus grand.
  SELECT NOM, SALAIRE
    FROM EMP
   WHERE SALAIRE = (SELECT MAX (SALAIRE) 
                      FROM EMP
                   ) 
  ;

42.2  Les groupes

Pour exprimer le groupe sur lequel doit porter la fonction de groupe on utilise la clause GROUP BY.

Ces fonctions et clauses peuvent s'utiliser avec une jointure.

Toute colonne qui intervient dans l'affichage sans être utilisée dans une fonction de groupe doit être aussi incluse dans la clause GROUP BY.

Pour rechercher la moyenne des salaires de chaque département on écrira :
    SELECT NODEPT, AVG(SALAIRE)
      FROM EMP
  GROUP BY NODEPT
  ;

42.3  La clause HAVING

La clause WHERE permet d'écrire une restriction au niveau ligne, la clause HAVING permet d'écrire une restriction au niveau groupe.

Pour rechercher les titres et le nombre d'employés pour les titres représentés plus de 2 fois, on écrira :
  SELECT TITRE, COUNT(*)
    FROM EMP
GROUP BY TITRE
  HAVING COUNT(*) > 2
;

42.4  Exercices



Exercice 76   Rechercher le salaire maximum et le salaire minimum parmi tous les salariés et l'écart entre les deux.





Exercice 77   Rechercher le nombre de titres différents.





Exercice 78   Rechercher le numéro de département, le titre et le nombre d'employés par département, titre.





Exercice 79   Rechercher le nom du département, le titre et le nombre d'employés par département, titre.





Exercice 80   Rechercher les titres et la moyenne des salaires par titre dont la moyenne est supérieure à la moyenne des salaires des Représentants.





Exercice 81   Rechercher le nombre de salaires renseignés et le nombre de taux de commission renseignés.





Exercice 82   Rechercher la moyenne des taux de commission renseignés et la moyenne des taux de commission en tenant compte des taux de commission non renseignés.
D.Gonzalez (gonzalez@univ-lille3.fr) en date du th , 

Previous Up Next