Bạn cần có một nhóm đầy đủ bằng cách:
SELECT `name`, `type`, `language`, `code`
FROM `users`
WHERE `verified` = '1'
GROUP BY `name`, `type`, `language`, `code`
ORDER BY `count` DESC LIMIT 0, 25
SQL92 yêu cầu tất cả các cột (ngoại trừ tổng hợp) trong mệnh đề select là một phần của mệnh đề nhóm theo. SQL99 nới lỏng hạn chế này một chút và nói rằng tất cả các cột trong mệnh đề select phải phụ thuộc về mặt chức năng của mệnh đề nhóm by. MySQL theo mặc định cho phép nhóm một phần và điều này có thể tạo ra các câu trả lời không xác định, ví dụ:
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 |
+------+------+
I E. một y ngẫu nhiên được chọn cho nhóm x. Người ta có thể ngăn chặn hành vi này bằng cách đặt @@ 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