जब हम सेलेक्ट स्टेटमेंट में ग्रुप बाय क्लॉज का इस्तेमाल बिना एग्रीगेट फंक्शन के करते हैं तो यह DISTINCT क्लॉज की तरह व्यवहार करेगा। उदाहरण के लिए, हमारे पास निम्न तालिका है -
mysql> Select * from testing; +------+---------+---------+ | id | fname | Lname | +------+---------+---------+ | 200 | Raman | Kumar | | 201 | Sahil | Bhalla | | 202 | Gaurav | NULL | | 203 | Aarav | NULL | | 204 | Harshit | Khurana | | 205 | Rahul | NULL | | 206 | Piyush | Kohli | | 207 | Lovkesh | NULL | | 208 | Gaurav | Kumar | | 209 | Raman | Kumar | +------+---------+---------+ 10 rows in set (0.00 sec)
कॉलम 'Lname' पर DISTINCT क्लॉज का उपयोग करके, MySQL निम्नलिखित परिणाम सेट लौटाता है।
mysql> select Distinct LNAME from testing; +---------+ | LNAME | +---------+ | Kumar | | Bhalla | | NULL | | Khurana | | Kohli | +---------+ 5 rows in set (0.00 sec)
अब, ग्रुप बाय क्लॉज का उपयोग करके, हम वही परिणाम सेट प्राप्त कर सकते हैं जो हमें DISTINCT -
का उपयोग करके मिला था।mysql> Select LNAME from testing GROUP BY Lname; +---------+ | LNAME | +---------+ | NULL | | Bhalla | | Khurana | | Kohli | | Kumar | +---------+ 5 rows in set (0.04 sec)
हम MySQL द्वारा लौटाए गए दोनों परिणाम सेटों के बीच एक अंतर देख सकते हैं कि GROUP BY क्लॉज का उपयोग करके MySQL क्वेरी द्वारा परिणाम सेट रिटर्न को सॉर्ट किया जाता है और इसके विपरीत, DISTINCT क्लॉज का उपयोग करके MySQL क्वेरी द्वारा परिणाम सेट रिटर्न को सॉर्ट नहीं किया जाता है।