【发布时间】:2011-07-17 11:41:51
【问题描述】:
我需要对一列执行平均,但我知道该列中的大多数值将为零。在所有可能的行中,只有两个可能具有正值。如何告诉 mySQL 忽略零并仅平均实际值?
【问题讨论】:
我需要对一列执行平均,但我知道该列中的大多数值将为零。在所有可能的行中,只有两个可能具有正值。如何告诉 mySQL 忽略零并仅平均实际值?
【问题讨论】:
假设您可能不希望完全排除此类行(也许它们在您要聚合的其他列中具有值)
SELECT AVG(NULLIF(field ,0))
from table
【讨论】:
您可能可以通过 WHERE 子句控制它:
select avg( field ) from table where field > 0
【讨论】:
select avg(your_column)
from your_table
where your_column != 0
【讨论】:
您可以将零转换为NULL,然后AVG() 函数将仅适用于非NULL 值。
UPDATE table SET column = NULL WHERE column='0';
SELECT AVG(column) FROM table;
【讨论】:
SELECT 工作?我想我要吐了……