इम्पाला - क्लाज होना

Having इम्पाला में क्लॉज़ आपको उन स्थितियों को निर्दिष्ट करने में सक्षम करता है जो अंतिम परिणामों में समूह परिणामों को फ़िल्टर करती हैं।

सामान्य तौर पर, Having क्लॉज के साथ प्रयोग किया जाता है group byखंड; यह ग्रुप BY क्लॉज द्वारा बनाए गए समूहों पर स्थितियां रखता है।

वाक्य - विन्यास

निम्नलिखित का सिंटैक्स है Havingखंड।

select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]

उदाहरण

मान लें कि हमारे पास एक तालिका है जिसका नाम है customers डेटाबेस में my_db और इसकी सामग्री इस प्रकार है -

[quickstart.cloudera:21000] > select * from customers; 
Query: select * from customers 
+----+----------+-----+-------------+--------+ 
| id | name     | age | address     | salary | 
+----+----------+-----+-------------+--------+ 
| 1  | Ramesh   | 32  | Ahmedabad   | 20000  |
| 2  | Khilan   | 25  | Delhi       | 15000  | 
| 3  | kaushik  | 23  | Kota        | 30000  | 
| 4  | Chaitali | 25  | Mumbai      | 35000  | 
| 5  | Hardik   | 27  | Bhopal      | 40000  | 
| 6  | Komal    | 22  | MP          | 32000  | 
| 7  | ram      | 25  | chennai     | 23000  | 
| 8  | rahim    | 22  | vizag       | 31000  | 
| 9  | robert   | 23  | banglore    | 28000  | 
+----+----------+-----+-----------+--------+ 
Fetched 9 row(s) in 0.51s

निम्नलिखित उपयोग करने का एक उदाहरण है Having इम्पाला में खंड -

[quickstart.cloudera:21000] > select max(salary) from customers group by age having max(salary) > 20000;

यह क्वेरी प्रारंभिक रूप से आयु के अनुसार तालिका को समूहित करती है और प्रत्येक समूह के अधिकतम वेतन का चयन करती है और उन वेतन को प्रदर्शित करती है, जो नीचे दिखाए गए 20000 से अधिक हैं।

20000 
+-------------+ 
| max(salary) |
+-------------+ 
| 30000       |
| 35000       | 
| 40000       | 
| 32000       | 
+-------------+ 
Fetched 4 row(s) in 1.30s