Restriction après agrégation (HAVING)

Définition

La clause HAVING permet d'effectuer une second restriction après l'opération d'agrégation.

Syntaxe

CTRL+C pour copier, CTRL+V pour coller
1
SELECT liste d'attributs de partionnement à projeter et de fonctions de calcul
2
FROM liste de relations
3
WHERE condition à appliquer avant calcul de l'agrégat
4
GROUP BY liste ordonnée d'attributs de partitionnement
5
HAVING condition sur les fonctions de calcul
SELECT liste d'attributs de partionnement à projeter et de fonctions de calcul
FROM liste de relations
WHERE condition à appliquer avant calcul de l'agrégat
GROUP BY liste ordonnée d'attributs de partitionnement
HAVING condition sur les fonctions de calcul

Exemple

CTRL+C pour copier, CTRL+V pour coller
1
SELECT Societe.Nom, AVG(Personne.Age)
2
FROM Personne, Societe
3
WHERE Personne.NomSoc = Societe.Nom
4
GROUP BY Societe.Nom
5
HAVING COUNT(Personne.NumSS) > 2
SELECT Societe.Nom, AVG(Personne.Age)
FROM Personne, Societe
WHERE Personne.NomSoc = Societe.Nom
GROUP BY Societe.Nom
HAVING COUNT(Personne.NumSS) > 2

Cette requête calcul l'âge moyen du personnel pour chaque société comportant plus de 2 salariés.