所以我有一个由'(fin_dec + fin_acc)组成的字段'total'。我一直试图通过fin acc来划分总数:
select sum(case when fin_acc = 0 then 0 else (total/fin_acc)end)as sum1
案例陈述是因为它不会除以0!
例如,总数为4,fin_acc为3,因此总和应为75%,但它只是给了我3.这可能是我创建fin_dec,fin_acc字段的情况,当时...然后其他1 0因此不会分成百分比。 有什么想法吗?
答案 0 :(得分: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 ..
答案 1 :(得分:0)
使用nullif函数:
select sum(1.0*total/nullif(fin_acc,0))as sum1