ACCESS计算字段平均值时排除0值,同时避免全为零的情况
(以下命名方式为下划线命名)
如果需要先排除0后计算平均值,可以试试这样
select sum(column_name)/(sum(iif(column_name>0,1,0)))
from table_name
这样在计算平均值的时候就不会将0参与计算了,原理就是求和并将字段中小于0的值替换为零后求和,如果需要负值可以做绝对值。
上面这种方法适合字段部分值为零的平均值计算,但对一个全为0的极端情况并没有做排除。(当分子为0时会出现无法计算的情况)
我们可以在分母的部分再嵌套一个iif函数。
select sum(column_name)/iif((sum(iif(column_name>0,1,0))),(sum(iif(column_name>0,1,0))),1)
from table_name
对IIF函数的原理可以查看官网的介绍