相关疑难解决方法(0)

获取AVG忽略Null或Zero值

如何获取AVG列忽略NULL和零值?

我有三列来获得他们的平均值,我尝试使用以下脚本:

SELECT distinct
     AVG(cast(ISNULL(a.SecurityW,0) as bigint)) as Average1
     ,AVG(cast(ISNULL(a.TransferW,0) as bigint)) as Average2
     ,AVG(cast(ISNULL(a.StaffW,0) as bigint)) as Average3
FROM Table1 a,  Table2 b
WHERE a.SecurityW <> 0 AND a.SecurityW IS NOT NULL
AND a.TransferW<> 0 AND a.TransferWIS NOT NULL
AND a.StaffW<> 0 AND a.StaffWIS NOT NULL
AND MONTH(a.ActualTime) = 4
AND YEAR(a.ActualTime) = 2013
Run Code Online (Sandbox Code Playgroud)

我没有得到任何结果,但是三列的值包括NULL和零!

无论如何在获得平均值之前排除空值?

例: AVERAGE(NOTNULL(SecurityW))

sql t-sql sql-server sql-server-2008-r2

36
推荐指数
4
解决办法
8万
查看次数

标签 统计

sql ×1

sql-server ×1

sql-server-2008-r2 ×1

t-sql ×1