列で平均を実行する必要がありますが、その列のほとんどの値がゼロになることがわかっています。考えられるすべての行のうち、2 つだけが正の値を持つ可能性があります。ゼロを無視して実際の値のみを平均化するように mySQL に指示するにはどうすればよいですか?
21723 次
4 に答える
94
そのような行を完全に除外したくない場合があると仮定します (おそらく、集計したい他の列に値が含まれている可能性があります)。
SELECT AVG(NULLIF(field ,0))
from table
于 2011-03-17T15:07:38.337 に答える
5
おそらくWHERE句を介してそれを制御できます:
select avg( field ) from table where field > 0
于 2011-03-17T15:05:24.540 に答える
1
select avg(your_column)
from your_table
where your_column != 0
于 2011-03-17T15:09:51.337 に答える
0
ゼロを に変換するNULL
と、AVG()
関数は値以外でのみ機能しNULL
ます。
UPDATE table SET column = NULL WHERE column='0';
SELECT AVG(column) FROM table;
于 2012-10-16T18:22:45.617 に答える