是否有可能获得列的平均值,以及具有条件的同一列的平均值?或者只是将这两个查询合并为一个.
SELECT AVG( field ) from table
SELECT AVG ( field ) from table where col = some_val
Run Code Online (Sandbox Code Playgroud)
如果没有一种简单的方法可以使用本机mysql函数组合它们,那么存储的函数是否能够处理它或用户定义的函数?
mel*_*okb 25
利用null聚合函数中不包含值的事实,我们可以使用CASE语句来控制平均值,如下所示:
select avg(amt) as average,
avg(case when col=some_val then amt else null end) as conditionalAverage
from myTable;
Run Code Online (Sandbox Code Playgroud)
示例演示:http://sqlize.com/2IXwbWD2Eb
小智 9
还有另外一种方法,不是在使用情况时
select
avg(amt) as average,
avg(if(col=some_val,amt,null)) as conditionalAverage
from myTable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9930 次 |
| 最近记录: |