Académique Documents
Professionnel Documents
Culture Documents
Ce chapitre poursuit l'étude des fonctions. Il explique comment effectuer des calculs statistiques, tels que les
moyennes, sur des groupes de lignes. Il présente les différentes manières de grouper les lignes d'une table en
sous-ensembles et comment spécifier des critères de recherche sur ces groupes de lignes.
MIN(ENAME) MAX(ENAME)
---------- ----------
ADAMS WARD
Remarque : les fonctions AVG, SUM, VARIANCE et STDDEV n'acceptent que des données de type
numérique.
COUNT(DEPTNO)
-------------
14
COUNT(DISTINCT(DEPTNO))
-----------------------
3
Le Langage SQL et l’Outil SQL*Plus 5-9
Fonctions de Groupe et Valeurs Null
Toutes les fonctions de groupe, à l'exception de COUNT (*), ignorent les valeurs NULL des
colonnes. Dans l'exemple ci-dessus, la moyenne est calculée uniquement sur les lignes pour
lesquelles la colonne COMM est renseignée. Le calcul de la moyenne s'effectue en divisant le
total des commissions versées à tous les employés par le nombre d'employés touchant une
commission (4).
DEPTNO AVG(SAL)
---------- ------------
30 1566.6667
20 2175
10 2916.6667
DEPTNO COUNT(ENAME)
---------- ------------
10 3
20 5
30 6
Toute colonne ou expression de la liste SELECT autre qu'une fonction de groupe doit figurer dans la clause
GROUP BY.
DEPTNO AVG(SAL)
---------- --------------
10 2916.6667
20 2175
L'exemple suivant affiche le numéro de département et le salaire moyen pour les départements dont le salaire
maximum est supérieur à $2900.
DEPTNO AVG(SAL)
--------- ---------
10 2916.6667
20 2175
4. Affichez le salaire maximum, le salaire minimum, la somme des salaires et le salaire moyen
de tous les employés. Nommez respectivement les colonnes Maximum, Minimum, Sum et
Average. Arrondissez les résultats à zéro décimale. Enregistrez votre ordre SQL dans un
fichier nommé p5q4.sql.
6. Ecrivez une requête pour afficher le nombre de personnes qui occupent le même poste.
JOB COUNT(*)
---------- --------
ANALYST 2
CLERK 4
MANAGER 3
PRESIDENT 1
SALESMAN 4
8. Ecrivez une requête pour afficher la différence existant entre le salaire maximum et le
salaire minimum. Nommez la colonne DIFFERENCE.
DIFFERENCE
----------
4200
9. Affichez le matricule des différents managers et le niveau de salaire le plus bas de leurs
employés.
Excluez toute ligne où le manager n'est pas identifié. Excluez tout groupe dans lequel le
salaire minimum est inférieur à $1000. Triez les résultats par ordre décroissant des salaires.
MGR MIN(SAL)
--------- --------
7566 3000
7839 2450
7782 1300
7788 1100
10. Ecrivez une requête pour afficher le nom du département, la localisation, le nombre
d'employés et le salaire moyen pour tous les employés de ce département. Nommez les
colonnes dname, loc, Nombre d’Employés et Salaire, respectivement.
12. Créez une requête pour afficher les postes, le salaire de ces postes par numéro de
département et le salaire total de ces postes incluant tous les départements.
Nommez les colonnes de façon appropriée.