Sobes.tech
Junior

Quelle est la différence entre les clauses WHERE et HAVING en SQL?

sobes.tech IA

Réponse de l'IA

WHERE s'applique avant le regroupement et filtre les lignes du résultat FROM. HAVING s'applique après le regroupement et filtre les groupes formés avec GROUP BY.

Exemple :

Supposons que nous ayons une table orders avec les colonnes customer_id, order_date et amount.

Trouver tous les clients dont le montant total des commandes dépasse 1000 :

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Trouver toutes les commandes avec un montant supérieur à 1000 :

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Tableau de comparaison :

Caractéristique WHERE HAVING
Application Sur les lignes individuelles avant le regroupement Sur les groupes de lignes après le regroupement
Utilise Colonnes de FROM Fonctions agrégées et colonnes de GROUP BY
Exécuté Avant GROUP BY Après GROUP BY
Fonctions agrégées Ne peut pas être utilisé directement Peut être utilisé