【发布时间】:2016-03-29 23:26:45
【问题描述】:
我有一个球员表现表,我想返回每个球员的最高分,如果他们在达到这个分数时没有出局,则在其后添加一个星号 ('*')。这是我到目前为止构建的查询,但它给了我错误 #1111:对组函数的无效使用
SELECT player_id, players.name,
COUNT( * ) AS matches,
SUM( score ) AS runs,
(SELECT IF(is_out = 0, CONCAT(MAX(score),'*'), MAX(score)) FROM batting WHERE score = MAX(score) ) AS high
FROM batting
RIGHT JOIN players ON batting.player_id = players.p_id
WHERE player_id <> 0
GROUP BY player_id
我看过其他时候出现此错误,它应该表明何时通过 MAX/MIN 函数执行 SUM 函数,但我看不到查询中发生这种情况的位置
我哪里出错了,我将如何纠正这个问题,grma
【问题讨论】:
-
我怀疑错误与从击球中选择 MAX(score) 的子查询有关
-
@Yottatron 如果我在 IF 函数内将
MAX(score)更改为score没有区别 -
删除该子查询后,它执行得很好......