mysql的一个问题

我将一个字段求平均值,并精确到小数点前1位

先求平均值
select avg(total) from x$waits_global_by_latency;

输出:
+------------+
| avg(total) |
+------------+
|   139.6923 |
+------------+
这个是正确的

加上求平均值操作,发生了错误
select round(avg(total), 1) from x$waits_global_by_latency;

输出:
+----------------------+
| round(avg(total), 1) |
+----------------------+
|                141.1 |
+----------------------+
这个值应该为139.7才对

为什么呢?

这个玩意是动态变化的,建议两个一起查,你分两次查,数据已经不一样了

select avg(total),round(avg(total), 1) from x$waits_global_by_latency;

官网上有说round的结果和数据类型有关系
用format看看
select format(avg(total), 1) from x$waits_global_by_latency;
不过要注意format得到的字符类型的结果