SQL HAVING 语句

جمله HAVING

دلیل اضافه کردن جمله HAVING در SQL این است که کلید WHERE نمی‌تواند با تابع‌های جمعی استفاده شود.

قوانین SQL HAVING

SELECT نام ستون, function_جمع(نام ستون)
FROM نام جدول
WHERE نام ستون عملگر مقدار
GROUP BY نام ستون
HAVING function_جمع(نام ستون) عملگر مقدار

مثال SQL HAVING

ما این جدول "Orders" را داریم:

O_Id OrderDate OrderPrice مشتری
1 2008/12/29 1000 بوش
2 2008/11/23 1600 کارتر
3 2008/10/05 700 بوش
4 2008/09/28 300 بوش
5 2008/08/06 2000 ادامز
6 2008/07/21 100 کارتر

حالا ما می‌خواهیم مشتریانی که مبلغ کل سفارشات آنها کمتر از 2000 باشد را پیدا کنیم.

ما از این جمله SQL استفاده کردیم:

SELECT مشتری,SUM(OrderPrice) FROM Orders
GROUP BY مشتری
HAVING SUM(OrderPrice)<2000

نتایج مجموعه مشابه:

مشتری SUM(OrderPrice)
کارتر 1700

حالا ما می‌خواهیم مشتری "بوش" یا "ادامز" که مبلغ کل سفارشات آنها بیشتر از 1500 باشد را پیدا کنیم.

ما یک WHERE جمله عادی به SQL معادل اضافه کردیم:

SELECT مشتری,SUM(OrderPrice) FROM Orders
WHERE مشتری='بوش' OR مشتری='ادامز'
GROUP BY مشتری
HAVING SUM(OrderPrice)>1500

نتایج مجموعه:

مشتری SUM(OrderPrice)
بوش 2000
ادامز 2000