我写了一个查询,可以得出每个玩家4的平均得分:
SELECT batsmen.player_id, AVG(score)
FROM batsmen
WHERE batsmen.inning_no=4
GROUP BY player_id;
但现在我需要找到最高的平均分。显然我可以查看输出,orderby并轻松看到最高的平均值,但我想要一个查询,为我拉出它。
我假设我需要使用
SELECT MAX(score);
在上面的avg查询中收到结果集。我需要加入/子查询吗?
由于 颖
答案 0 :(得分:3)
也许这将满足您的需求:
SELECT player_id, AVG(score)
FROM batsmen
WHERE batsmen.inning_no=4
GROUP BY player_id
ORDER BY 2 DESC
LIMIT 1;
答案 1 :(得分:0)
未经测试,但试试这个:
SELECT player_id, avg_score
FROM (
SELECT batsmen.player_id,
AVG(score) avg_score
FROM batsmen
WHERE batsmen.inning_no=4
GROUP BY player_id
)
ORDER BY avg_score DESC
LIMIT 0,1;
下进行。
答案 2 :(得分:-1)
我相信SQL应该是:
SELECT MAX(
SELECT AVG(score)
FROM batsmen
WHERE batsmen.inning_no=4
GROUP BY player_id
);