原创

MySQL-精度-ROUND精度-两次除法带来的精度问题-第一次保留4位小数-第二次保留2位

SELECT
ROUND(
sum(
ROUND(
CASE
ifnull(i.train_people_number, 0)
WHEN 0 THEN 0
ELSE ifnull(i.pass_people_number, 0) * 100 / ifnull(i.train_people_number, 0)
END, 4)
)
/ count(i.id)
,2
) as trainAvgPassRate

这里是计算平均通过率,逻辑是对每一个通过率相加,再除以个数

另外可以试试先对分子、分母求总数,再做除法
正文到此结束
本文目录