您的当前位置:首页正文

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

2024-12-16 来源:华佗小知识

引言

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

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

方案

方法1 sql+excel分组

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

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

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

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

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

方案2. sql分组查询

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

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

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

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

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

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

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

热门图文