SQL HAVING ×Ó¾ä
HAVING ×Ó¾ä
ÔÚ SQL ÖÐÔö¼Ó HAVING ×Ó¾äÔÒòÊÇ£¬WHERE ¹Ø¼ü×ÖÎÞ·¨ÓëºÏ¼Æº¯ÊýÒ»ÆðʹÓá£
SQL HAVING Óï·¨
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
SQL HAVING ʵÀý
ÎÒÃÇÓµÓÐÏÂÃæÕâ¸ö "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 |
ÏÖÔÚ£¬ÎÒÃÇÏ£Íû²éÕÒ¶©µ¥×ܽð¶îÉÙÓÚ 2000 µÄ¿Í»§¡£
ÎÒÃÇʹÓÃÈçÏ SQL Óï¾ä£º
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
½á¹û¼¯ÀàËÆ£º
Customer | SUM(OrderPrice) |
---|---|
Carter | 1700 |
ÏÖÔÚÎÒÃÇÏ£Íû²éÕÒ¿Í»§ "Bush" »ò "Adams" ÓµÓг¬¹ý 1500 µÄ¶©µ¥×ܽð¶î¡£
ÎÒÃÇÔÚ SQL Óï¾äÖÐÔö¼ÓÁËÒ»¸öÆÕͨµÄ WHERE ×Ӿ䣺
SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500
½á¹û¼¯£º
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Adams | 2000 |