0

所以我有一个由 (fin_dec+fin_acc) 组成的“总计”字段。我一直在尝试将总数除以 fin acc:

 select sum(case when fin_acc = 0 then 0 else (total/fin_acc)end)as sum1

case语句是因为它不会被0除!

例如,total 为 4,fin_acc 为 3,因此总和应该为 75%,但它只给了我 3。这可能是我创建 fin_dec、fin_acc 字段的方式,例如......然后是 1,否则为 0,因此不会分成百分比。有任何想法吗?

4

2 回答 2

0

像这样:

select sum(fin_acc) as s, count(fin_acc) as n from ..

然后用你的编程语言:

if(n>0) avg= s/n else avg= null;

或者只是使用:

select avg(fin_acc) as a from ..
于 2013-02-07T16:51:25.993 回答
0

使用 nullif 函数:

select sum(1.0*total/nullif(fin_acc,0))as sum1
于 2013-02-07T23:33:51.320 回答