Liée à la clause GROUP BY
mais peu utilisée, HAVING peut pourtant se révéler
d'une grande utilité dès que l'on souhaite préciser
plus avant une sélection, en y adjoignant une "sous-sélection"
sous forme de calculs ou autres. Ainsi, nous créons une sorte
d'astreinte supplémentaire à la première sélection.
Notez qu'elle doit impérativement être placée
après la clause GROUP BY, et avant toute possible clause ORDER
BY...
Le code
SELECT machine,ventes,pays FROM ventes_globales
WHERE pays LIKE 'F%'
GROUP BY machine,ventes HAVING MAX(ventes) > 2000;
Un point intéressant est son
utilisation avec des fonctions
de GROUP BY, comme SUM(), AVG(), MAX()... qui ne peuvent
pas être utilisées par WHERE.
Le code
SELECTION AVG(notes),eleve FROM classe_5
GROUP BY eleve HAVING AVG(note) > 10;
|