WHERE Clause की तरह ही HAVING Clause का उपयोग records को filter करने के लिए किया जाता है। लेकिन WHERE clause के साथ हम SQL aggregate functions का उपयोग नहीं कर सकते इसलिए हम HAVING clause का उपयोग करते है।
SELECT Statement में SQL HAVING clause को Group BY clause के बाद implement किया जाता है।
Aggregate Functions : AVG(),COUNT(),MAX(),MIN(),SUM()
Syntax for SQL HAVING Clause
SELECT column_Name1, column_Name2, ….., column_NameN
aggregate_function_name(column_Name)
FROM table_name
GROUP BY column_Name1
HAVING condition;
Example : Employee table
Emp_Id | Emp_Name | Emp_Salary | Emp_City |
---|---|---|---|
201 | Abhay | 2000 | Noida |
202 | Ankit | 4000 | Delhi |
203 | Bheem | 8000 | Shimla |
204 | Amit | 2000 | Noida |
205 | Divya | 5000 | Delhi |
यदि आप प्रत्येक City के employees की salary जोड़ना चाहते हैं, तो दी गयी query लिखे :
SELECT SUM(Emp_Salary), Emp_City FROM Employee GROUP BY Emp_City;
OUTPUT
SUM(Emp_Salary) | Emp_City |
---|---|
4000 | Noida |
9000 | Delhi |
8000 | Shimla |
अब, मान लीजिए कि आप उन cityको दिखाना चाहते हैं जिनके employee का कुल वेतन 5000 से अधिक है। इस case के लिए, आपको SQL में HAVING क्लॉज के साथ निम्न query टाइप करनी होगी:
SELECT SUM(Emp_Salary), Emp_City FROM Employee GROUP BY Emp_City HAVING SUM(Emp_Salary)>5000;
OUTPUT
SUM(Emp_Salary) | Emp_City |
---|---|
9000 | Delhi |
8000 | Jaipur |