我试图计算出SQL来平均一系列数字,但只包括那些大于0的数字。
例如:
Field
4
5
0
6
SELECT Avg(Field) FROM Table;给出3.75。但是我希望它忽略0,所以平均值是5。
SELECT Avg(Field) FROM Table where Field > 0;可以工作,但是如果我有超过一个字段呢:
Field1 Field2
4 2
5 0
0 3
6 4
SELECT Avg(Field1), Avg(Field2) FROM Table;使用
SELECT Avg(Field1), Avg(Field2) FROM Table where Field1 >0 and Field2>0;不起作用
我该怎么做?注意,数字可以是0到100之间的任意值。
发布于 2015-03-13 17:39:00
您可以使用条件表达式:
SELECT
Avg(case when Field1 > 0 then Field1 end),
Avg(case when Field2 > 0 then Field2 end)
FROM table发布于 2015-03-13 17:38:51
只需使用where子句筛选出0。
SELECT Avg(Field) FROM Table Where Field > 0发布于 2015-03-13 17:39:07
SELECT Avg(Field) FROM yourtable where Field > 0 ;https://stackoverflow.com/questions/29038576
复制相似问题