عبارت HAVING
Wiki
چون که عبارت WHERE نمی تواند به همراه توابع aggregate استفاده شود عبارت HAVING در SQL به همراه توابع aggregate آورده می شود.
فرم عبارت 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
مثال:
Wiki
جدول Orders را در زیر داریم:
O_Id |
OrderDate |
OrderPrice |
Customer |
1 |
2008/11/12 |
1000 |
Hansen |
2 |
2008/10/23 |
1600 |
Nilsen |
3 |
2008/09/02 |
700 |
Hansen |
4 |
2008/09/03 |
300 |
Hansen |
5 |
2008/08/30 |
2000 |
Jensen |
6 |
2008/10/04 |
100 |
Nilsen |
می خواهیم مشتریانی که جمع سفارش آنها کمتر از 2000 است را پیدا کنیم.
از دستور زیر استفاده می کنیم:
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
نتیجه به شکل زیر خواهد بود:
Customer |
SUM(OrderPrice) |
Nilsen |
1700 |
می خواهیم اگر مشتریان "Hansen" یا "Jensen" جمع سفارش بیشتر از 1500 دارند را نشان دهد.
یک عبارت WHERE به دستور SQL اضافه می شود.
SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Hansen' OR Customer='Jensen'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500
جدول نتیجه به شکل زیر خواهد بود:
Customer |
SUM(OrderPrice) |
Hansen |
2000 |
Jensen |
2000 |
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه دادهSQLServer کلیک کنید.
READ MORE