Mysql AVG忽略零

时间:2011-03-17 15:03:18

标签: mysql null zero average

我需要在列上执行平均值,但我知道该列中的大多数值都将为零。在所有可能的行中,只有两行可能具有正值。如何告诉mySQL忽略零并且仅平均实际值?

4 个答案:

答案 0 :(得分:79)

假设您可能不想完全排除这些行(可能它们在您想要聚合的其他列中有值)

SELECT AVG(NULLIF(field ,0)) 
from table

答案 1 :(得分:5)

您可以通过WHERE子句控制它:

select avg( field ) from table where field > 0

答案 2 :(得分:0)

select avg(your_column) 
from your_table 
where your_column != 0

答案 3 :(得分:0)

您可以将零转换为NULL,然后AVG()函数仅适用于NULL个值。

UPDATE table SET column = NULL WHERE column='0';
SELECT AVG(column) FROM table;