7
是否有可能获得列的平均值,以及具有条件的同一列的平均值?或者只是将这两个查询合并为一个。有条件的mysql平均值
SELECT AVG(field) from table
SELECT AVG (field) from table where col = some_val
如果没有简单的方法来使用本机mysql函数来组合它们,存储的函数是否能够处理它或用户定义的函数?
是否有可能获得列的平均值,以及具有条件的同一列的平均值?或者只是将这两个查询合并为一个。有条件的mysql平均值
SELECT AVG(field) from table
SELECT AVG (field) from table where col = some_val
如果没有简单的方法来使用本机mysql函数来组合它们,存储的函数是否能够处理它或用户定义的函数?
考虑的事实null
值不包含在聚合函数的优势,我们可以使用一个CASE
语句来控制平均,如下列:
select avg(amt) as average,
avg(case when col=some_val then amt else null end) as conditionalAverage
from myTable;
还有另外一种方法,不使用的情况下
select
avg(amt) as average,
avg(if(col=some_val,amt,null)) as conditionalAverage
from myTable