查询NAME与MAX(WICKETS)时出现not a single-group group function错误的解决方法
解决SQL查询中的"not a single-group group function"错误
这个错误的核心原因是:你的SELECT语句里同时包含了非聚合列(NAME)和聚合函数(MAX(WICKETS)),但没有明确指定分组规则。数据库无法确定NAME列的取值应该如何和聚合函数的结果对应。
根据你的实际需求,有两种解决方式:
场景1:获取拿到最多wickets的球员姓名及对应wickets数
如果你的目标是找到全局WICKETS最高的球员(可能有多个并列),可以用子查询先拿到最大值,再匹配对应记录:
SELECT NAME, WICKETS FROM BOWLER WHERE WICKETS = (SELECT MAX(WICKETS) FROM BOWLER);
场景2:查询每个球员的最高wickets数
如果你的表中同一个球员有多条记录,想按球员分组统计各自的最高wickets,需要添加GROUP BY子句指定分组列:
SELECT NAME, MAX(WICKETS) FROM BOWLER GROUP BY NAME;
内容的提问来源于stack exchange,提问作者Ketan
相关产品推荐
相关产品推荐

