日期:2014-05-17  浏览次数:20507 次

除法结果为0,为什么?
SQL code
select sum(case d.task_state when 0 then 1 else 0 end)/sum(1),
sum(case d.task_state when 0 then 1 else 0 end),
sum(1)
from week_task_result d 

这么写输出的结果是:0 23 24
其中第一列为0,而不是23除以24得到的值,为什么?


------解决方案--------------------
SQL code
select sum(case d.task_state when 0 then 1 else 0 end)* 1.0/sum(1),
sum(case d.task_state when 0 then 1 else 0 end),
sum(1)
from week_task_result d

------解决方案--------------------
SQL code

select sum(case d.task_state when 0 then 1 else 0 end)*1.0/sum(1),
sum(case d.task_state when 0 then 1 else 0 end),
sum(1)
from week_task_result d

------解决方案--------------------
精度问题
------解决方案--------------------
整数和整数乘除,结果为整数。。而23/24=0.958333,所以取整成了0。