La clause HAVING spécifie un critère de recherche pour un groupe ou une fonction d'agrégation. HAVING est généralement utilisé avec GROUP BY, sinon HAVING se comporte à l'instar de WHERE.

SELECT nom_champ,
Fonction_Agregation
FROM nom_table
GROUP BY nom_champ2
HAVING "Condition"

La clause HAVING peut contenir un test sur une valeur calculée à l'aide d'une fonction d'agrégation.

SELECT genre, count(*) AS 'Nombre films'
FROM films
GROUP BY genre
HAVING count(*) > 0

Les alias ne peuvent être utilisés au sein d'une clause HAVING, contraignant ainsi à utiliser le nom de colonne ou la fonction d'agrégation sur laquelle la condition doit s'appliquer.

Exemple
SELECT Editeur,
SUM(Prix)
FROM Librairie
GROUP BY Editeur
HAVING SUM(Prix) > 200

' retourne
O'REILLY 616.00
WROX PRESS 286.00
MICROSOFT PRESS 284.00