Sobes.tech
Junior — Middle

Quelle est la différence entre les opérateurs HAVING et WHERE en SQL et dans quels cas doivent-ils être utilisés?

sobes.tech IA

Réponse de l'IA

L'opérateur WHERE est utilisé pour filtrer les lignes avant le regroupement des données. Il sélectionne les lignes qui participeront aux opérations suivantes, comme les fonctions d'agrégation.

L'opérateur HAVING est appliqué pour filtrer les données déjà regroupées, c'est-à-dire après l'exécution de GROUP BY. Il permet de filtrer les groupes selon des conditions d'agrégation.

Exemple:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- filtrage des lignes par salaire
GROUP BY department
HAVING COUNT(*) > 5      -- filtrage des groupes par nombre d'employés

En résumé:

  • WHERE filtre les enregistrements individuels avant le regroupement.
  • HAVING filtre les groupes après regroupement.

Utilisez WHERE pour des conditions sur des champs individuels, HAVING pour des conditions sur des fonctions d'agrégation.