背景:数据库表字段中关于面积设计之初为varchar类型,但是在求和计算时会出现精度损失问题,截图如下
- 解决方案:使用CAST或CONVERT函数显式地将VARCHAR值转换为数值类型,这样可以更精确地控制转换过程【SELECT中最后一行语句】
-
SELECT brf.type_id AS type_id, COUNT( brf.id ) AS amount, COALESCE ( SUM( IFNULL( brf.area, 0 ) ), 0 ) AS area , SUM(CAST(IFNULL( brf.area, 0 ) AS DECIMAL(10, 3))) AS area2 FROM biz_resource_forest brf WHERE brf.del_flag = '0' GROUP BY type_id
- 结语:统计面积丢失精度问题解决