
जिस column के द्वारा GROUP बनाया जाता है। उस column पर कोई calculation Count, Avg, Max, Min आदि aggregate function के द्वारा किया जा सकता है। अतः इस क्वेरी में Count, aggregate फंक्शन को हर समूह के टपल्स जिनकी Class एक समान है के लिए लगाया गया है। क्योंकि SELECT क्लॉज में दो ही फील्ड है। अतः परिणाम निम्नानुसार प्राप्त होगा।

उदाहरण-
क्वेरी – उन Class के नाम बताइये (प्रत्येक Class) जिनमें पढ़ने वाले छात्रों की संख्या 1 से अधिक है।
Syntax :
MySQL> SELECT Class, Count (Roll_No) FROM Student GROUP BY Class HAVING Count (Roll_No)>1;
Output->

यहाँ रिजल्ट में प्रत्येक GROUP से वही टपल्स SELECT हुए हैं जिनका Count 1 से अधिक है। SQL में एक किसी टपल्स के लिए कोई शर्त पूर्ण होती है या नहीं यह देखने के लिए WHERE क्लॉज का उपयोग करते हैं। जबकि GROUP BY क्लॉज के द्वारा बनाये गये समूहों में उपस्थित टपल्स के लिए शर्त को देखने (test) के लिए HAVING क्लॉज का उपयोग करते हैं। WHERE क्लॉज एवम् HAVING क्लॉज में यह मुख्य अन्तर है।
SQL में HAVING क्लॉज में दर्शाये गये predicate को लागू GROUP BY क्लॉज के द्वारा GROUP बनाने के बाद करते हैं। इसलिए इसके साथ aggregate फंक्शन भी उपयोग कर सकते हैं।
नोट – अगर किसी क्वेरी में WHERE, HAVING GROUP BY आते हैं तो सबसे पहले WHERE क्लॉज में लागू होगा उसके बाद जिन टपल्स के लिए शर्त पूर्ण होगी वे GROUP BY क्लॉज के द्वारा समूहों में रखेंगे और अन्त में हर समूह के लिए HAVING क्लॉज को लागू करेंगे जिन समूहों के लिए HAVING क्लॉज संतोषजनक नहीं रहता वे समूह परिणाम में से हट जाते हैं।