Différence HAVING/where

[Fermé]
Signaler
Messages postés
75
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
11 octobre 2016
-
Messages postés
3743
Date d'inscription
samedi 23 février 2013
Statut
Membre
Dernière intervention
8 juillet 2017
-
Bonjour, je ne comprends pas clairement le différence entre la requête having et la requête where en SQL... Quelqu'un aurait-il une idée?
Thanks

2 réponses

Messages postés
32727
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
16 septembre 2021
7 954
Salut,

Le where est une condition simple.

Le having est une condition qui s'applique sur un regroupement (group by)

select montant from table where montant > 10

select departement, sum(montant) from table 
group by departement 
havinq sum(montant) > 1000


cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
Messages postés
3743
Date d'inscription
samedi 23 février 2013
Statut
Membre
Dernière intervention
8 juillet 2017
1 595
Bonjour,

Sauf erreur de ma part, HAVING s'utilise principalement avec des fonctions d'agrégats comme GROUP BY car dans le cas de WHERE, ton moteur de BDD ne retournera que les éléments remplissant les conditions de ta clause WHERE alors qu'avec HAVING, tous les éléments seront retournés et le tri se fera ensuite.
Cela permet donc de soulager la charge de ton serveur en limitant le nombre d'éléments retournés par ta requête.