Sobes.tech
Junior — Middle

Quelle est la différence entre les conditions HAVING et WHERE lors de la création de requêtes SQL?

sobes.tech IA

Réponse de l'IA

En SQL, les conditions WHERE et HAVING servent à filtrer les données, mais elles s'appliquent à différentes étapes du traitement de la requête :

  • WHERE filtre les lignes avant le regroupement. Il est utilisé pour limiter l'ensemble des données qui seront agrégées.
  • HAVING filtre les groupes après l'application des fonctions d'agrégation (par exemple, SUM, COUNT).

Exemple :

SELECT département, COUNT(*) as nombre_employés
FROM employés
WHERE salaire > 50000       -- filtrage par salaire avant le regroupement
GROUP BY département
HAVING COUNT(*) > 10;        -- filtrage des groupes avec plus de 10 employés

Ici, d'abord, on sélectionne les employés avec un salaire supérieur à 50000 (WHERE), puis les données sont regroupées par département, et seuls les départements avec plus de 10 employés passent le filtre HAVING.