दूसरे शब्दों में कहें तो इस त्रुटि आप कह रहा है एसक्यूएल सर्वर नहीं जानता है कि जो B
समूह से चयन करने के लिए।
या तो आप एक विशिष्ट मान का चयन (उदाहरण के लिए करना चाहते हैं MIN
, SUM
या AVG
) इस स्थिति में आप का प्रयोग करेंगे उचित समेकित फ़ंक्शन, या आप हर (यानी सहित एक नई पंक्ति के रूप में मूल्य का चयन करना चाहते B
में GROUP BY
क्षेत्र सूची)।
निम्नलिखित आंकड़ों पर विचार करें:
आईडी एबी
१ १ १३
1 1 79
१ २ १३
१ २ १३
१ २ ४२
पूछताछ
SELECT A, COUNT(B) AS T1
FROM T2
GROUP BY A
लौटूंगा:
1 पर
१ २
२ ३
जो सब ठीक है और अच्छा है।
हालांकि निम्नलिखित (अवैध) क्वेरी पर विचार करें, जो इस त्रुटि का उत्पादन करेगा:
SELECT A, COUNT(B) AS T1, B
FROM T2
GROUP BY A
और इसका लौटा डेटा समस्या को स्पष्ट करता है:
A T1 B
१ २ १३? 79? दोनों 13 और 79 अलग पंक्तियों के रूप में? (13 + 79 = 92)? ...?
२ ३ १३? 42? ...?
हालाँकि, निम्न दो प्रश्न यह स्पष्ट करते हैं, और त्रुटि का कारण नहीं बनेंगे:
एक समुच्चय का उपयोग करना
SELECT A, COUNT(B) AS T1, SUM(B) AS B
FROM T2
GROUP BY A
लौटूंगा:
A T1 B
1 2 92
२ ३ ६ 2
करने के लिए स्तंभ जोड़ना GROUP BY
सूची
SELECT A, COUNT(B) AS T1, B
FROM T2
GROUP BY A, B
लौटूंगा:
A T1 B
१ १ १३
1 1 79
२ २ १३
२ १ ४२