美文网首页java相关
mysql数据库分组统计--根据时间分组统计

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

作者: 行舟2009 | 来源:发表于2017-12-25 18:23 被阅读17次

    引言

    环境上有一个实时表库,该表存储了一天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版本不同带来的脚本兼容性问题.

    相关文章

      网友评论

        本文标题:mysql数据库分组统计--根据时间分组统计

        本文链接:https://www.haomeiwen.com/subject/abalgxtx.html