mysql 分组统计 原则_mysql数据库分组统计--根据时间分组统计

引言

环境上有一个实时表库,该表存储了一天24小时定时任务.马上打算进行软件升级,领导让分析一下,什么时间升级软件,对程序的影响最小.

这样就需要进行数据统计,按小时进行分组,统计出每个小时的运行任务个数.

方案

方法1 sql+excel分组

sql: select * from t_jobs #查询表中所有的记录(表中只有24小时的数据)查询记录数466条.

查询的数据导出到excel中,如下图:

fef38ba728b9

然后,在时间栏,进行筛选函数,得到自分组,可以查看每个分组的个数和详细.筛选结果如下图:

fef38ba728b9

优点:查看方便,尤其是可以得知在某个时间段内,有多少个具体的程序在运行.

缺点:不直观,想要知道24小时之内的程序运行分布状况,需要一个个去查看,比较麻烦.

方案2. sql分组查询

sql: SELECT DATE_FORMAT(planTime,'%Y%m%d%H')hours,COUNT(any_value(planTime)) FROM t_jobs GROUP BY hours;

将结果导出后,结果显示如下:

fef38ba728b9

sql说明: any_value()函数,主要是为了避免mysql的group查询函数失效,因为MySQL 5.7.5后only_full_group_by成为sql_mode的默认选项之一,这会导致在查询的时候,如果不加上any_value()函数,则会报错.

优点:可以很清楚看到程序分布情况

缺点:不能像excel一样查看具体的流程信息.

总结根据自己需要进行使用.同时避免mysql版本不同带来的脚本兼容性问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值