栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql配合java代码按每两小时为一个时间区间统计数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql配合java代码按每两小时为一个时间区间统计数据

最近有个需求,是这样的:

当时看到这个需求的第一反应是挺简单的,应该一条sql就能统计完,后面发现真正实现的时候,用sql会面临一些些问题,比如说在某一些时间段,可能会没有数据,这样就导致某一些时间段统计出来可能没有数据。又因为时间比较紧,懒得折腾,所以先采用java + sql的方式来统计,后面有时间再来研究研究纯sql统计。

  1. 根据时间(小时统计出每个小时的扫码量)
--查询当日的亮码统计
SELECt
	count(*) AS num,
	date_format( insert_time, '%H' ) AS timeZones 
FROM
	gtm_qrcode_log 
WHERe
	to_days( insert_time ) = to_days(
	now()) 
	AND type = '0' 
GROUP BY
	timeZones
  1. 通过java代码进行统计
private List initDataList(List timeZonesVOList) {

        List list = new ArrayList<>();
        for (int i = 0; i < 12; i++) {
            BigDataShowColorCodeTimeZonesVO timeZonesVO = new BigDataShowColorCodeTimeZonesVO();
            // 开区间
            int openInterval = i * 2;
            // 闭区间
            int closedInterval = openInterval + 2;
            // 初始数量
            int num = 0;
            StringBuffer stringBuffer = new StringBuffer();
            if (openInterval < 8) {
                stringBuffer.append("0").append(openInterval).append(":00-").append("0").append(closedInterval).append(":00");
            } else if (openInterval == 8) {
                stringBuffer.append("0").append(openInterval).append(":00-").append(closedInterval).append(":00");
            } else {
                stringBuffer.append(openInterval).append(":00-").append(closedInterval).append(":00");
            }
            timeZonesVO.setTimeZones(stringBuffer.toString());

            for (BigDataShowColorCodeTimeZonesVO vo : timeZonesVOList) {
                Integer valueOf = Integer.valueOf(vo.getTimeZones());
                if (valueOf >= openInterval && valueOf < closedInterval) {
                    num += vo.getNum();
                }

            }
            timeZonesVO.setNum(num);
            list.add(timeZonesVO);
        }
        return list;
    }
  1. 最终的数据效果
"timeZonesVOList":[
			{
				"num":126,
				"timeZones":"00:00-02:00"
			},
			{
				"num":90,
				"timeZones":"02:00-04:00"
			},
			{
				"num":85,
				"timeZones":"04:00-06:00"
			},
			{
				"num":325,
				"timeZones":"06:00-08:00"
			},
			{
				"num":568,
				"timeZones":"08:00-10:00"
			},
			{
				"num":1,
				"timeZones":"10:00-12:00"
			},
			{
				"num":486,
				"timeZones":"12:00-14:00"
			},
			{
				"num":224,
				"timeZones":"14:00-16:00"
			},
			{
				"num":0,
				"timeZones":"16:00-18:00"
			},
			{
				"num":0,
				"timeZones":"18:00-20:00"
			},
			{
				"num":0,
				"timeZones":"20:00-22:00"
			},
			{
				"num":0,
				"timeZones":"22:00-24:00"
			}
		]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/686047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号