आपके पास एक पूरा समूह होना चाहिए:
SELECT `name`, `type`, `language`, `code`
FROM `users`
WHERE `verified` = '1'
GROUP BY `name`, `type`, `language`, `code`
ORDER BY `count` DESC LIMIT 0, 25
SQL92 के लिए आवश्यक है कि चयन खंड में सभी कॉलम (समुच्चय को छोड़कर) समूह द्वारा खंड का हिस्सा हों। SQL99 इस प्रतिबंध को थोड़ा कम करता है और बताता है कि चुनिंदा क्लॉज के सभी कॉलम क्लॉज द्वारा समूह पर कार्यात्मक रूप से निर्भर होने चाहिए। MySQL डिफ़ॉल्ट रूप से आंशिक समूह के लिए अनुमति देता है और यह गैर-नियतात्मक उत्तर उत्पन्न कर सकता है, उदाहरण:
create table t (x int, y int);
insert into t (x,y) values (1,1),(1,2),(1,3);
select x,y from t group by x;
+------+------+
| x | y |
+------+------+
| 1 | 1 |
+------+------+
अर्थात। समूह x के लिए एक यादृच्छिक y का चयन किया जाता है। @@sql_mode सेट करके इस व्यवहार को रोका जा सकता है:
set @@sql_mode='ONLY_FULL_GROUP_BY';
select x,y from t group by x;
ERROR 1055 (42000): 'test.t.y' isn't in GROUP BY