SQL HAVING statement
- Page précédente SQL Group By
- Page suivante SQL ucase()
Clause HAVING
La raison d'ajouter une clause HAVING dans SQL est que le mot-clé WHERE ne peut pas être utilisé avec les fonctions de totalisation.
Grammaire HAVING SQL
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value
Exemple de HAVING SQL
Nous avons le tableau suivant "Orders" :
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | Bush |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 2008/09/28 | 300 | Bush |
5 | 2008/08/06 | 2000 | Adams |
6 | 2008/07/21 | 100 | Carter |
Nous souhaitons maintenant trouver les clients dont le total des commandes est inférieur à 2000.
Nous utilisons l'expression SQL suivante :
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
L'ensemble des résultats est similaire :
Customer | SUM(OrderPrice) |
---|---|
Carter | 1700 |
Nous souhaitons maintenant trouver que le total des commandes du client "Bush" ou "Adams" dépasse 1500.
Nous avons ajouté une clause WHERE habituelle dans l'expression SQL :
SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500
Ensemble de résultats :
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Adams | 2000 |
- Page précédente SQL Group By
- Page suivante SQL ucase()