如何獲得忽略NULL
和零值的列的AVG
?獲取AVG忽略空值或零值
我有三列得到他們的平均水平,我嘗試使用下面的腳本:
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
我沒有得到任何結果,但三列有值,包括NULL和零!
有沒有辦法在得到平均值之前排除空值?
例如:AVERAGE(NOTNULL(SecurityW))
所有這些「AND」表示您只會獲得在所有3列中都具有非空值的行。另外,不需要'NOT NULL'檢查,因爲如果Column是NULL,則Column <> 0評估爲UNKNOWN。 –