← Retour à la référence SQL

HAVING

Catégorie : agregation

Clause qui filtre les groupes après l'application de GROUP BY. Similaire à WHERE mais pour les résultats agrégés.

📝 Syntaxe

SELECT colonne, fonction_agregation() FROM table GROUP BY colonne HAVING condition_agregation

💡 Exemples

SELECT classe, COUNT(*) FROM élèves GROUP BY classe HAVING COUNT(*) > 25
Seconde | 30
Première | 28
SELECT departement, AVG(salaire) FROM employes GROUP BY departement HAVING AVG(salaire) > 40000
Informatique | 45000
Direction | 55000

🎯 Exercice

Trouver les villes ayant plus de 10 employés avec un salaire moyen supérieur à 35000€

Voir la solution
SELECT ville, COUNT(*), AVG(salaire) FROM employes GROUP BY ville HAVING COUNT(*) > 10 AND AVG(salaire) > 35000

⚠️ Pièges courants

  • HAVING s'applique après GROUP BY, WHERE avant
  • On peut utiliser HAVING sans GROUP BY mais c'est rare
Pixel