mysql - MySQL 查询的成功率

标签 mysql

您可能需要一些板球知识来帮助解决这个问题。给定下表,这个查询会产生这个结果吗?

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

参见SQL Fiddle with demo

关于mysql - MySQL 查询的成功率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11581922/

相关文章:

PHP mysql array_diff 不匹配所有字段

mysql - 'show engine innodb status' 中过时的死锁信息

mysql - 获取标签计数以及当前用户是否对该计数做出了贡献

mysql - 优化mysql配置?

php - 如何合并两个具有相同字段但数据不重复的数据库?

mysql - 重叠预订查询

JavaScript - 确认框。 |是的? > 从 MySQL 中删除数据/否 - 什么都不做

MySQL 根据第一个日期从每个诊断的患者中仅选择一行

mysql - 为什么我以 root 身份登录时没有所有权限?

mysql - 从统一数组中获取值: debug works,值正在改变,但颜色没有改变