Vous êtes sur la page 1sur 13

12/01/20

Bases de données
SQL - Agrégation et groupement

EL Moukhtar ZEMMOURI
ENSAM – Meknès
Version – 2020 / 2021

E. Zemmouri, ENSAM - Meknès 2


12/01/20

Table EMP
Introduction
enum enom prof sal dnum Table DEP
100 ALI Manager 1000 20 dnum dnom ville dir

101 HASSAN Ingénieur 1200 10 10 Production Meknes 101

102 AMAL Ingénieur 1000 10 20 Ventes Casa 100

103 AMINA Technicien 1100 20


104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• Le salaire min, le salaire max et la moyenne des salaires des employés?


• Le nombre d’employés ingénieurs?
• La moyenne des salaires par ville? Ou par profession ?
• è Opérateurs d’agrégation et groupement
E. Zemmouri, ENSAM - Meknès 3

Opérateurs d’agrégation

• Des opérateurs qui s’appliquent sur un ensemble de valeurs (numériques,


chaines, …) et qui produisent une valeur agrégée comme résultat.

• Ces opérateurs sont utilisés pour résumer ou «agréger» les valeurs d’une
colonne d'une relation è opérateurs d'agrégation.

E. Zemmouri, ENSAM - Meknès 4


12/01/20

Opérateurs d’agrégation

• Les opérateurs standard :

o SUM

o MIN

o MAX

o AVG

o COUNT

o …

E. Zemmouri, ENSAM - Meknès 5

Table EMP
Opérateurs d’agrégation
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• La somme des salaires des employés?

SELECT SUM(sal) SUM(sal)

FROM emp 7100

E. Zemmouri, ENSAM - Meknès 6


12/01/20

Table EMP
Opérateurs d’agrégation
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• Le salaire min, le salaire max et la moyenne


des salaires des employés?

SELECT MIN(sal), MAX(SAL), AVG(sal) MIN(sal) MAX(sal) AVG(sal)

FROM emp 800 1200 1014.28

E. Zemmouri, ENSAM - Meknès 7

Table EMP
Opérateurs d’agrégation
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• Le nombre d’employés ingénieurs?


SELECT COUNT(*)
COUNT(*)
FROM emp 3

WHERE prof=‘Ingénieur’

E. Zemmouri, ENSAM - Meknès 8


12/01/20

Table EMP
Opérateurs d’agrégation
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• Le nombre de professions? Attention à la répétition !

SELECT COUNT(prof) SELECT COUNT(DISTINCT prof)


FROM emp FROM emp

E. Zemmouri, ENSAM - Meknès 9

Table EMP
Opérateurs d’agrégation
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• Le salaire moyen des ingénieur?

SELECT AVG(sal) AVG(sal)

1100
FROM emp
WHERE prof=‘Ingénieur’
E. Zemmouri, ENSAM - Meknès 10
12/01/20

Groupement

E. Zemmouri, ENSAM - Meknès 11

Table EMP
Groupement
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20
enum enom prof sal dnum
100 ALI Manager 1000 20
• Le salaire moyen par profession ? 101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
105 ADIL Ingénieur 1100 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
106 ZAID Technicien 800 20
E. Zemmouri, ENSAM - Meknès 12
12/01/20

Groupement

• Regrouper les tuples d’une table en sous groupes avant d’appliquer un


opérateur d’agrégation sur chaque sous groupe.

• Le groupement se fait selon la valeur d’une colonne (ou plusieurs


colonnes)

E. Zemmouri, ENSAM - Meknès 13

Table EMP
Groupement
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• Le salaire moyen par profession ?


prof AVG(sal)
SELECT prof, AVG(sal)
Ingénieur 1100
FROM emp Manager 1000

GROUP BY prof Technicien 933.33

E. Zemmouri, ENSAM - Meknès 14


12/01/20

Table EMP
Groupement
enum enom prof sal dnum Table DEP
100 ALI Manager 1000 20 dnum dnom ville dir

101 HASSAN Ingénieur 1200 10 10 Production Meknes 101

102 AMAL Ingénieur 1000 10 20 Ventes Casa 100

103 AMINA Technicien 1100 20


104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• La somme et la moyenne des salaires par ville ?


ville SUM(sal) AVG(sal)
SELECT ville, SUM(sal), AVG(sal)
Casa 2900 966.66
FROM emp NATURAL JOIN dep Meknes 4200 1050

GROUP BY ville
E. Zemmouri, ENSAM - Meknès 15

Table EMP
Groupement
enum enom prof sal dnum Table DEP
100 ALI Manager 1000 20 dnum dnom ville dir

101 HASSAN Ingénieur 1200 10 10 Production Meknes 101

102 AMAL Ingénieur 1000 10 20 Ventes Casa 100

103 AMINA Technicien 1100 20


104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20

• La moyenne des salaires par prof dans chaque ville ? ville prof AVG(sal)

Casa Manager 1000


SELECT ville, prof, AVG(sal)
Casa Technicien 950
FROM emp NATURAL JOIN dep Meknes Ingénieur 1100

GROUP BY ville, prof Meknes Technicien 900

E. Zemmouri, ENSAM - Meknès 16


12/01/20

Sélection dans un groupement

E. Zemmouri, ENSAM - Meknès 17

Table EMP
Sélection après groupement
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
102 AMAL Ingénieur 1000 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10
106 ZAID Technicien 800 20
enum enom prof sal dnum
100 ALI Manager 1000 20
• Les professions dont la moyenne des 101 HASSAN Ingénieur 1200 10
salaires est supérieure à 1000 ? 102 AMAL Ingénieur 1000 10
105 ADIL Ingénieur 1100 10
103 AMINA Technicien 1100 20
104 AMINE Technicien 900 10
106 ZAID Technicien 800 20
E. Zemmouri, ENSAM - Meknès 18
12/01/20

Sélection après groupement

• La clause HAVING permet la sélection, après groupement, de certains


groupes selon une condition qui dépend du groupe dans son ensemble,
plutôt que des tuples individuels.

E. Zemmouri, ENSAM - Meknès 19

Table EMP
Sélection après groupement
enum enom prof sal dnum
100 ALI Manager 1000 20
101 HASSAN Ingénieur 1200 10
prof AVG(sal)
102 AMAL Ingénieur 1000 10
Ingénieur 1100
103 AMINA Technicien 1100 20
Manager 1000
104 AMINE Technicien 900 10
105 ADIL Ingénieur 1100 10 Technicien 933.33

106 ZAID Technicien 800 20

• Les professions dont la moyenne des salaires est supérieure à 1000 ?


SELECT prof
FROM emp prof

GROUP BY prof Ingénieur


HAVING AVG(sal) >= 1000 Manager

E. Zemmouri, ENSAM - Meknès 20


12/01/20

Questions

E. Zemmouri, ENSAM - Meknès 21

EMP (enum, enom, prof, sal, dnum*)


Question
DEP (dnum, dnom, ville, dir*)

• Donner les villes où la moyenne des salaires des ingénieurs est supérieurs
à 1000.

E. Zemmouri, ENSAM - Meknès 22


12/01/20

EMP (enum, enom, prof, sal, dnum*)


Question
DEP (dnum, dnom, ville, dir*)

• Donner la liste des employés qui ont un salaire supérieur à la moyenne


des salaires de tous les employés.

E. Zemmouri, ENSAM - Meknès 23

EMP (enum, enom, prof, sal, dnum*)


Question
DEP (dnum, dnom, ville, dir*)

• Donner la liste des employés qui ont le salaire max dans leurs
départements.

E. Zemmouri, ENSAM - Meknès 24


12/01/20

EMP (enum, enom, prof, sal, dnum*)


Question
DEP (dnum, dnom, ville, dir*)

• Donner la liste des employés qui ont un salaire supérieur au salaire moyen
dans leurs villes.

E. Zemmouri, ENSAM - Meknès 25

Bases de données
Agrégation et groupement

EL Moukhtar ZEMMOURI
ENSAM – Meknès
Version – 2020 / 2021