我有一个mysql表,其中包含这样的数据。

Name    |how_out    |runs
------------------------------
Robin   |Not out    |45
Robin   |lbw        |25
Robin   |caught     |50
Robin   |caught     |0
Robin   |bowled     |30
Robin   |bowled     |0
.
.
.


我想要一个SQL查询,该查询返回以下列

名称,总运行次数,平均值

听起来很简单,但是对我来说唯一的问题是。
在板球比赛中,平均值不是Sum(次)/ count(*)
它是总和(行程)/ how_out不是'Not out'的局数

有人可以告诉我如何编写这样的查询吗?

由于明显的原因,我写的查询给出了错误的平均值。
我写的查询是

Select `Name`,sum(`runs`) as 'Total_runs', Sum(`runs`)/count(*)
From `batsman_stats`
group by `Name`
order by 2 desc


sql专家可以帮我吗?

谢谢

最佳答案

Select `Name`,sum(`runs`) as 'Total_runs', Sum(`runs`)/sum(if(how_out <> 'Not out',1,0))
From `batsman_stats`
group by `Name`
order by 2 desc

关于mysql - MySQL查询来计算板球击球手平均值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6982964/

10-14 13:51