是否可以获得一列的平均值,以及带有条件的同一列的平均值?或者干脆将这两个查询合二为一。
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;
关于mysql avg 有条件的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130110/