如何计算SQL中的平均值,不包括零?

时间:2016-03-14 16:18:29

标签: sql

我想计算一列数字的平均值,但我想排除该列中有零的行,这有可能吗? 我的代码只是一个简单的总和/计数:

SELECT SUM(Column1)/Count(Column1) AS Average
FROM Table1

4 个答案:

答案 0 :(得分:10)

SELECT AVG(Column1) FROM Table1 WHERE Column1 <> 0

答案 1 :(得分:2)

一种方法是AVG()CASE / NULLIF()

SELECT AVG(NULLIF(Column1, 0)) as Average
FROM table1;

平均值忽略NULL个值。这假定您需要其他聚合;否则,显而易见的选择是过滤。

答案 2 :(得分:-1)

多条道路通往罗马......

select sum(Column1) / sum( case Column1
                           case 0 then 0 else 1
                           end )
from table1

答案 3 :(得分:-1)

SELECT AVG(column) FROM TABLE
where column **not like** '0%'