Filtering Grouped Data with HAVING In Hindi
एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम में HAVING क्लॉज़ का यूज़ GROUP BY क्लॉज़ टेबल ऑपरेशन के आउटपुट रिजल्ट को फ़िल्टर करने में किया जाता है। यहाँ Having क्लॉज़ WHERE क्लॉज़ के जैसे ही बिहेव करता है, इसमें मुख्य डिफ्रेंस में जहाँ WHERE क्लॉज़ टेबल डाटा ग्रुपिंग से पहले टेबल रोज़ को फ़िल्टर करता है. इसी तरह प्रकार HAVING क्लॉज़ GROUP BY ऑपरेशन में अप्लाई होने के बाद टेबल ग्रुप्स को फ़िल्टर करता है। इससे डेटाबेस यूजर HAVING क्लॉज़ को जरूरत पड़ने पर कही भी यूज़ कर सकते है. डेटाबेस यूजर टेबल डाटा को जरूरत पड़ने पर एग्रीगेट फंक्शन COUNT(), SUM(), AVG(), MIN(), या MAX() के आधार पर हैविंग और ग्रुप बाय क्लॉज़ के साथ मैन्युअल डाटा और इनफार्मेशन को फ़िल्टर कर सकते हैं।

Syntax of the HAVING clause in SQL databases.
एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम में GROUP BY क्लॉज़ के साथ HAVING क्लॉज़ को अप्लाई करने का बेसिक सिंटैक्स है.
SELECT column_name(s), aggregate_function(column_name)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING aggregate_function(column_name) condition;
HAVING clause elements.
- aggregate_function(column_name) – यह मौजूदा डेटाबेस टेबल में ग्रुप किए गए टेबल डेटा में अप्लाई होने वाला एग्रीगेट फ़ंक्शन है।
- HAVING – यह हैविंग क्लॉज़ में यूजर द्वारा अप्लाई एग्रीगेट फ़ंक्शन की कंडीशन के बेस पर GROUP BY क्लॉज़ के डाटा रिज़ल्ट को फ़िल्टर करता है।
- condition – यह मौजूदा हैविंग क्लॉज़ में अप्लाई एग्रीगेट फ़ंक्शन कंडीशन होती है. जैसे, SUM(salary) > 30000)।
Using HAVING with aggregate functions in SQL databases.
एसक्यूएल डेटाबेस टेबल में HAVING क्लॉज़ का यूज़ सामान्यता तब किया जाता है, जब डेटाबेस यूजर को किसी पर्टिकुलर न्यूमेरिक एग्रीगेट फ़ंक्शन के रिज़ल्ट के बेस पर टेबल डाटा रिजल्ट ग्रुप्स को फ़िल्टर करने की ज़रूरत होती है।
Example of HAVING with aggregate functions.
Filtering an SQL database using SUM().
यदि डेटाबेस यूजर मौजूदा एम्प्लॉई टेबल में ऐसे डिपार्टमेंट को फाइंड करना चाहते हैं, जहाँ एम्प्लॉई की टोटल सैलरी 40000 रुपए से अधिक है, तो यहाँ डेटाबेस यूजर SUM() एग्रीगेट फ़ंक्शन के साथ HAVING क्लॉज़ को अप्लाई कर सकते हैं।
SELECT department, SUM(salary) AS total_salary
FROM employe
GROUP BY department
HAVING SUM(salary) > 40000;
Result of HAVING with aggregate functions.
department total_salary
Marketing 74000
Development 44000
Design 63000
In this example.
- यहाँ यह टेबल क्वेरी एम्प्लॉई को उनके डिपार्टमेंट के हिसाब से ग्रुप कर डिस्प्ले करती है।
- जहा HAVING क्लॉज़ पुरे एम्प्लॉई टेबल में ऐसे किसी भी ऐसे डिपार्टमेंट डाटा को फ़िल्टर कर देता है, जिसमे टोटल एम्प्लॉई सैलरी (SUM(salary)) 40000 से कम या इसके बराबर है।
- अंत में सभी रिकार्ड्स डिस्प्ले होते है, जिसमे एम्प्लॉई की सैलरी 40000 से अधिक है, उन्ही रिकॉर्ड को ये फ़िल्टर कर डिस्प्ले करता है।
COUNT() function filtering example.
Filtering an SQL database using the COUNT() function.
यदि डेटाबेस यूजर मौजूदा एम्प्लॉई टेबल में 2 से ज़्यादा एम्प्लॉई वाले डिपार्टमेंट को फाइंड करना चाहते हैं, तो यहाँ डेटाबेस यूजर COUNT() फ़ंक्शन के साथ HAVING क्लॉज़ का यूज़ कर सकते हैं।
SELECT department, COUNT(*) AS num_employe
FROM employe
GROUP BY department
HAVING COUNT(*) > 2;
Result of COUNT() function filtering.
department num_employe
Marketing 4
Development 7
Design 9
In this example.
- यहाँ इस एक्साम्प्ल क्वेरी में एम्प्लॉई को उनके डिपार्टमेंट के अनुसार ग्रुप करती है।
- जहा HAVING क्लॉज़ मौजूदा टेबल में उन डिपार्टमेंट रिकॉर्ड को फ़िल्टर कर देता है, जिनमें 2 या उससे कम एम्प्लॉई हैं। रिजल्ट के रूप में सिर्फ़ 2 से अधिक एम्प्लॉई वाले डिपार्टमेंट जिसमे Marketing, Development और Design डिपार्टमेंट शामिल होते हैं।
AVG() function filtering example.
Filtering an SQL database using the AVG() function.
यदि डेटाबेस यूजर मौजूदा एम्प्लॉई टेबल में ऐसे डिपार्टमेंट को फाइंड करना चाहते हैं, जहाँ एम्प्लॉई की एवरेज सैलरी 70,000 रुपए से अधिक है, तो यहाँ आप AVG() एग्रीगेट फ़ंक्शन के साथ HAVING क्लॉज़ को यूज़ कर सकते हैं।
SELECT department, AVG(salary) AS avg_salary
FROM employe
GROUP BY department
HAVING AVG(salary) > 70000;
Result of AVG() function filtering.
department avg_salary
Marketing 74000
In this example.
- यहाँ यह टेबल क्वेरी एम्प्लॉई को उनके डिपार्टमेंट के अनुसार ग्रुप करती है।
- जहा HAVING क्लॉज़ मौजूदा एम्प्लॉई टेबल में उन डिपार्टमेंट को फ़िल्टर करता है, जहाँ एम्प्लॉई की एवरेज सैलरी 70,000 से कम या उसके बराबर है।
- यहाँ रिजल्ट के रूप सिर्फ़ Marketing डिपार्टमेंट ही इस कंडीशन को फुलफिल करता हैं।
Using HAVING with multiple conditions in an SQL database.
डेटाबेस यूजर HAVING क्लॉज़ में मल्टीप्ल कंडीशन को ऐड कर अप्लाई कर सकते हैं, ठीक उसी प्रकार से जैसे WHERE कंडीशन क्लॉज़ में यूज़ करते हैं।
Example of HAVING with multiple conditions in an SQL database.
यहाँ डेटाबेस यूजर को एम्प्लॉई टेबल में ऐसे डिपार्टमेंट फाइंड करने है, जहाँ टोटल एम्प्लॉई सैलरी 30000 से ज़्यादा है और औसत सैलरी 40000 से ज़्यादा है.
SELECT department, SUM(salary) AS total_salary, AVG(salary) AS avg_salary
FROM employe
GROUP BY department
HAVING SUM(salary) > 30000 AND AVG(salary) > 40000;
SQL database result of HAVING with multiple conditions.
department total_salary avg_salary
Marketing 74000 1,48,000
Development 44000 88,000
Design 63000 1,26,000
In this example.
- यह डेटाबेस क्वेरी एम्प्लॉई को उनके डिपार्टमेंट के अनुसार ग्रुप करती है।
- यहाँ HAVING क्लॉज़ एम्प्लॉई टेबल में उन डिपार्टमेंट को ही फ़िल्टर करता है, जहाँ टोटल एम्प्लॉई सैलरी 30000 से कम है, या एवरेज सैलरी 40000 से कम है।
- यहाँ ये कंडीशन सिर्फ़ Marketing, Development, और Design डिपार्टमेंट ही इन दोनों कंडीशन को फुलफिल करता है.
Difference between WHERE and HAVING in SQL database management systems.
एसक्यूएल डेटाबेस टेबल में जहा WHERE क्लॉज़ ग्रुपिंग होने से पहले टेबल रोज़ को फ़िल्टर करता है। where क्लॉज़ का यूज़ टेबल कॉलम वैल्यू के आधार पर अलग-अलग टेबल रोज़ को फ़िल्टर करने में किया जाता है।
वही HAVING क्लॉज़ टेबल ग्रुपिंग होने के बाद टेबल ग्रुप्स डाटा को फ़िल्टर करता है। हैविंग क्लॉज़ का यूज़ ज्यादातर न्यूमेरिक एग्रीगेट फ़ंक्शन के आधार पर डेटाबेस टेबल रिकॉर्ड डाटा को फ़िल्टर करने में किया जाता है।
Example of the difference between WHERE and HAVING.
यहाँ माना की डेटाबेस यूजर एम्प्लॉई टेबल में उनकी सैलरी के आधार पर टेबल रिकॉर्ड डाटा को फ़िल्टर करना चाहते हैं, और उन्हें उनके डिपार्टमेंट टाइप के अनुसार ग्रुप करना चाहते हैं।
इस एक्साम्प्ल में 70,000 रुपए से अधिक सैलरी वाले एम्प्लॉई रिकॉर्ड को फ़िल्टर करने के लिए WHERE क्लॉज़ का यूज़ करना।
SELECT department, COUNT(*) AS num_employe
FROM employe
WHERE salary > 70000
GROUP BY department;
यहाँ इस एक्साम्प्ल में टोटल एम्प्लॉई सैलरी के आधार पर एम्प्लॉई डिपार्टमेंट को फ़िल्टर करने के लिए HAVING क्लॉज़ का यूज़ करना।
SELECT department, SUM(salary) AS total_salary
FROM employe
GROUP BY department
HAVING SUM(salary) >400000;
यहाँ फर्स्ट एक्साम्प्ल क्वेरी में WHERE क्लॉज़ ग्रुपिंग होने से पहले उन टेबल एम्प्लॉई रिकॉर्ड को फ़िल्टर करता है, जिनकी सैलरी 70,000 से ज़्यादा है। जबकि सेकंड एक्साम्प्ल क्वेरी में, HAVING क्लॉज़ हर एम्प्लॉई डिपार्टमेंट के लिए टोटल सैलरी कैलकुलेट होने के बाद टेबल रिकॉर्ड डाटा को ग्रुप्स कर फ़िल्टर करता है।
Sorting Grouped Data in SQL Database Tables with ORDER BY.
डेटाबेस यूजर ग्रुप किए गए टेबल डाटा रिज़ल्ट को एक पर्टिकुलर आर्डर आरोही या अवरोही में सॉर्ट करने के लिए ORDER BY क्लॉज़ को अप्लाई कर सकते हैं। ORDER BY क्लॉज़ का यूज़ HAVING क्लॉज़ को ऐड कर पहले फ़िल्टर करने और बाद में डेटाबेस रिज़ल्ट को ऑर्डर करने में किया जा सकता है।
Example of Sorting Grouped Data.
यहाँ डेटाबेस यूजर 55000 से अधिक टोटल सैलरी पाने वाले एम्प्लॉई डिपार्टमेंट की लिस्ट क्रिएट करने के लिए टोटल सैलरी के हिसाब से घटते क्रम में सॉर्ट कर डिस्प्ले किया गया है.
SELECT department, SUM(salary) AS total_salary
FROM employe
GROUP BY department
HAVING SUM(salary) > 55000
ORDER BY total_salary DESC;
Result of Sorting Grouped Data.
department total_salary
Marketing 74000
Design 63000
In this example.
- यहाँ इस एक्साम्प्ल में HAVING क्लॉज़ उन एम्प्लॉई टेबल डिपार्टमेंट रिकॉर्ड को फ़िल्टर करता है, जहाँ टोटल एम्प्लॉई की सैलरी 55000 रूपए से अधिक है।
- वही ORDER BY क्लॉज़ टोटल एम्प्लॉई सैलरी के आधार पर टेबल रिज़ल्ट को घटते क्रम में सॉर्ट कर डिस्प्ले करता है।
Conclusion of Filtering Grouped Data with HAVING.
- एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम में HAVING क्लॉज़ का यूज़ GROUP BY टेबल ऑपरेशन के बाद टेबल रोज़ के ग्रुप को फ़िल्टर करने में किया जाता है, जहा सामान्यता हैविंग क्लॉज़ का यूज़ COUNT(), SUM(), AVG(), MIN(), और MAX() जैसे न्यूमेरिक एग्रीगेट फ़ंक्शन के साथ में किया जाता है।
- इसी प्रकार एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम में WHERE क्लॉज़ टेबल डाटा को ग्रुपिंग करने से पहले टेबल रोज़ को फ़िल्टर करता है, वही HAVING क्लॉज़ ग्रुपिंग के बाद टेबल रिज़ल्ट को फ़िल्टर कर प्रीव्यू करता है।
- डेटाबेस यूजर एसक्यूएल डेटाबेस मैनेजमेंट सिस्टम में मल्टीप्ल कंडीशन को अप्लाई करने और न्यूमेरिक एग्रीगेट फ़ंक्शन के रिज़ल्ट के आधार पर टेबल डाटा को फ़िल्टर करने के लिए HAVING क्लॉज़ का यूज़ कर सकते हैं।
- डेटाबेस यूजर टेबल डेटा को ग्रुप करने, फ़िल्टर करने और पर्टिकुलर आर्डर में सॉर्ट करने के लिए HAVING को GROUP BY और ORDER BY के साथ ग्रुप में अप्लाई कर सकते है।
