عبارت having در SQL
عبارت HAVING
چون که عبارت WHERE نمی تواند به همراه توابع aggregate استفاده شود عبارت HAVING در SQL به همراه توابع aggregate آورده می شود.
فرم عبارت HAVING:
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
مثال:
جدول 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 است را پیدا کنیم.
از دستور زیر استفاده می کنیم:
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
نتیجه به شکل زیر خواهد بود:
Customer | SUM(OrderPrice) |
---|---|
Nilsen | 1700 |
می خواهیم اگر مشتریان "Hansen" یا "Jensen" جمع سفارش بیشتر از 1500 دارند را نشان دهد.
یک عبارت WHERE به دستور SQL اضافه می شود.
WHERE Customer='Hansen' OR Customer='Jensen'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500
جدول نتیجه به شکل زیر خواهد بود:
Customer | SUM(OrderPrice) |
---|---|
Hansen | 2000 |
Jensen | 2000 |
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه دادهSQLServer کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 21856