select sum(case if_passed when 1 then 1 else 0 end)/sum(case if_pass when 1 then 1 else 0 end)
from VWProduceOrders
使用两个Sum的比值,因为他输出的是小数,但是结构却是0,,怎么样才能取道小数值呢,
...全文
428打赏收藏
这样的取值,为什么只能取整数,不能输出小数!
select sum(case if_passed when 1 then 1 else 0 end)/sum(case if_pass when 1 then 1 else 0 end) from VWProduceOrders 使用两个Sum的比值,因为他输出的是小数,但是结构却是0,,怎么样才能取道小数值呢,
因为两个数都是整数,结果就是整数了。所以你对任何一个转成有小数的类型就可以了,比如:
select cast(sum(case if_passed when 1 then 1 else 0 end) as float)/sum(case if_pass when 1 then 1 else 0 end)
from VWProduceOrders
或
select sum(case if_passed when 1 then 1 else 0 end) /cast(sum(case if_pass when 1 then 1 else 0 end) as float)
from VWProduceOrders