本文主要是介绍Mysql数据库不同时间粒度下的分组统计—按时间粒度:秒、分钟、小时、天、周、月、年进行分组统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Mysql数据库中按照不同时间粒度进行分组统计
最近遇到的需求,在Mysql数据库中按照不同时间粒度进行分组统计,返回的数据用做画echarts图使用。下面介绍以:秒、分钟、小时、天、周(本周,上周,最近7天)、月、年进行分组统计,仅以此做个人笔记和分享,粒度不够的评论后补。
一、演示数据
现在开始介绍,以下是的我用来做演示的部分测试数据
我们以统计未恢复和已恢复的告警状态为例,那首先说明一下告警状态值的含义:
‘01’,‘02’,‘03’,‘04’ 表示未恢复状态
‘10’, ‘11’, ‘12’, ‘20’ 表示已经恢复状态
1. 以秒为粒度分组统计
-- 以秒为粒度分组统计
SELECTDATE_FORMAT(arm.begin_time, '%Y-%m-%d %H:%i:%s') AS btime, sum(`arm`.`alarm_status` in('01','02','03','04')) AS `unrecovered`,sum(`arm`.`alarm_status` in('10','11','12','20')) AS `recovered`FROM yusys_aiops_alarm.alarm_list_info_view armwhere arm.status = 0GROUP BY btimeORDER BY btime;
实例:
2. 以分钟为粒度分组统计
-- 以分钟为粒度分组统计
SELECTDATE_FORMAT(arm.begin_tim
这篇关于Mysql数据库不同时间粒度下的分组统计—按时间粒度:秒、分钟、小时、天、周、月、年进行分组统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!