您可能需要一些板球知识来帮助解决这个问题。给定下表,这个查询会产生这个结果吗?
Table: batsmen
batsmanname | runsscored | howout
Colin | 10 | bowled
Colin | 20 | caught
Steve | 10 | bowled
Steve | 20 | not out
SELECT batsmanname, SUM(runsscored) / COUNT(howout) AS battingavg
FROM batsmen
WHERE howout <> 'not out'
GROUP BY batsmananme
Result:
batsmanname | battingavg
Colin | 15
Steve | 30
最佳答案
这应该会产生您想要的结果:
SELECT b1.name, SUM(b1.runsscored) / b2.NumOut as bat_avg
FROM batsmen b1
INNER JOIN
(
select name, COUNT(howout) as NumOut
from batsmen
WHERE howout <> 'not out'
GROUP BY name
) b2
ON b1.name = b2.name
GROUP BY b1.name
关于mysql - MySQL 查询的成功率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11581922/