जो कॉलम आपने कभी भी सेलेक्ट क्लॉज में बिना एग्रीगेट फंक्शन के जोड़े हैं, वे ग्रुप बाय क्लॉज में होने चाहिए।
इसे थोड़ा स्पष्ट करने के लिए:
यह उदाहरण लें:
आपके चयन खंड में आपके पास TransactionID, AccountID, TransactionAmount, TransactionDate है, और आपको सभी तिथियों पर SUM (TransactionAmount) की आवश्यकता है, उस स्थिति में, यदि आप
जोड़ते हैंSELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount)
FROM Table
GROUP BY TransactionDate
फिर आपको एक त्रुटि मिलेगी, क्यों
मान लें कि आपने 20160101 पर 4 लेन-देन किए हैं और प्रत्येक लेनदेन राशि $1000 है
आपकी परिणाम अपेक्षा होगी
TransDate TransAmt
20140101 4000
ऐसे में अगर आप सेलेक्ट क्लॉज जैसे AccountID और TransactionID में अन्य विशेषताएँ लाते हैं, तो वे कहाँ जाएँगी? यही कारण है कि हमें ग्रुप क्लॉज में सभी एट्रिब्यूट्स को शामिल करना होगा, जो कभी भी सेलेक्ट क्लॉज में शामिल हैं, सिवाय एक जो कि AGGREGATE फ़ंक्शन के साथ है।