Mysql 对数据统计百分比的四舍五入
来源:互联网 发布:显卡降频软件 编辑:程序博客网 时间:2024/06/12 10:32
先贴出一段sql例子 可以看得出来这里统计的是 t 表 和 t1表 一月份到12 月份 的 总数 就是t 表的总数 除以 t1 表的总数
SELECT
IFNULL(CONCAT(ROUND((LEFT(t.tsum/t1.t1sum*100,6)),2),'%'),0) as auditi_than
from
(SELECT COUNT(0) as tsum from t_sqwg t where 1=1
and t.time BETWEEN '2017-01-01' and '2017-12-29'
)t,
(select count(0) as t1sum from t_sqwg_log t where 1=1
and t.date BETWEEN '2017-01-01' and '2017-12-29'
) t1
最后的结果就是这样的
以上的sql 也用到了 mysql 的四种函数 也就是 IFNUll ,CONCAT, ROUND,LEFT
先来看看括号最里面的LEFT
LEFT(t.tsum/t1.t1sum*100,6)如果 t表比上t1保留小数点两位 的结果为 463.5523
那 select left(463.5523,6) >> 463.55
select left(463.5523,5) >> 463.5
再看LEFT 后面的ROUND 函数 也就是MYSQL 的四舍五入函数 它有两种形式
ROUND(values,x) values是要处理的数 x 是指保留几位小数点 但是 x 也可以为负数 当为负数时小数点左边的 x位整数为0 同时小数都为0
ROUND(values) 其实就是ROUND(values,0) 默认x 为0
列子
SELECT ROUND(4578.45785, 2 )
>>> 4578.46
SELECT ROUND(4578.45785, 3)
>>> 4578.458
SELECT ROUND(4578.45785, -1 )
>>> 4570
SELECT ROUND(4578.45785, -2)
>>> 4500
所以 以上sql 就是
ROUND((LEFT(t.tsum/t1.t1sum*100,6)),2) <的结果为 463.55>
然后 再用函数CONCAT 把 结果和 百分号 % CONCAT(ROUND((LEFT(t.tsum/t1.t1sum*100,6)),2),'%')
>>>463.55%
最后在来个IFNULL 函数 这里放的作用就是 如果值为NULL 就为0 当然也可以为其他数字或者为字符串值 取决它被使用的上下文
这里使用的LEFT 不用也没关系 现在这里用到是因为业务需要这样 IFNULL 加上也不错保险 毕竟值不会为空了
- Mysql 对数据统计百分比的四舍五入
- 【NumberFormat】四舍五入,百分比格式设置;
- 关于mysql的decimal四舍五入
- mysql的四舍五入处理函数
- 【mysql】sql语句的四舍五入
- mysql中对数字处理的函数
- MySql四舍五入
- MySql四舍五入
- mysql 四舍五入
- MySQL 四舍五入
- MySql四舍五入
- 基于三千万行数据统计的效率比较
- MySQL 之 ROUND 函数四舍五入的陷阱
- 据统计,70%的人容易受到心理暗示
- 小趴趴--知乎精华回答的非专业大数据统计
- MySql计算百分比
- mysql计算百分比
- mysql 显示任务百分比
- [bzoj1017]:[JSOI2008]魔兽地图DotR
- 在Windows下编译与运行minicap
- hive sql数据库跑批插件(hive,impala)
- selenium-下拉框选择
- linux中netlink机制的实例讲解
- Mysql 对数据统计百分比的四舍五入
- 不允许使用“{...}”对”std::vector<int,std::allocator<int> >“类型的对象进行初始化
- Java8 新添两宝——默认方法和静态方法
- 计算机维护
- 事务中的四种隔离级别
- python:认识*与**,判断函数输出
- 你有一条linux命令学习之df、du
- mongodb中聚类中常用的操作
- 数据结构图的建立和遍历(邻接表、邻接矩阵)