Exercice 12 / 60

HAVING

ConsigneAffiche les villes ayant strictement plus de 2 etudiants. Affiche la ville et le compte (nommé nb) ; le filtre s'applique après le regroupement.

📖 Cours

having filtre les groupes après l'agrégation. C'est comme where, mais pour les résultats d'agrégation. Syntaxe : select col, count(*) from table group BY col having condition;

Difference cle

WHERE filtre les lignes AVANT le regroupementHAVING filtre les groupes APRES le regroupement

Ces groupes viennent le plus souvent d'un group BY, mais pas forcément : sans group BY, la table entière compte pour un seul groupe, et having s'applique quand même (select count(*) from etudiants having count(*) > 2 renvoie bien la ligne 25).

WHERE filtre les lignes avant le regroupement, HAVING filtre les groupes après : deux tamis à deux moments du trajet
WHERE filtre les lignes avant le regroupement, HAVING filtre les groupes après : deux tamis à deux moments du trajet

Exemple (table produits) :

SELECT categorie, COUNT(*) AS nb FROM produitsGROUP BY categorie HAVING COUNT(*) > 5;-> seulement les categories ayant plus de 5 produits

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →