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é |