推广 热搜: 行业  设备    参数  系统  经纪    教师  机械  中国 

Java补全数据库查询统计数据缺失的日期

   日期:2024-11-09     作者:caijiyuan    caijiyuan   评论:0    移动:http://qyn41e.riyuangf.com/news/527.html
核心提示:        在进行数据库数据统计时,比如按天统计数据,一个月中有一些天没有数据的,数据库也就没查出来&#

 

Java补全数据库查询统计数据缺失的日期

      在进行数据库数据统计时,比如按天统计数据,一个月中有一些天没有数据的,数据库也就没查出来,对于后台来说这没什么。但是前端展示的时候要补全缺失的日期数据,比如2020-05-12没有数据,就添加键日期,并把值补为0。(假如后台查询的数据数据结构为List<Map<String, Object>>)。

      如图,数据库查询出来的统计数据如下

       我的需求是查询出近30天的所有数据,很显然,上面的数据是有缺失的,我需要把“2020-04-13”到“2020-05-12”(当前)的所有数据都列出来,没有的话就补0。

方式一:依赖数据库解决,新建一个数据表,left join 来查询,或者拼接 union。此处先不做讲解。

方式二:在程序中进行补全。

  1. 写一个补全日期工具类,给定指定的开始和结束日期,返回两者之间所有的日期的字符串列表
 

       2. 得到指定日期之间的列表如下图

      3. 得到指定日期之间的列表后,遍历列表,然后和数据库查询出来的数据进行比较,如果相同则添加数据库查询的Map到新的列表,不同则构造一个新的Map(key:日期,value:0,然后添加到新的列表。核心代码如下

 

      4.其中result为补全的最终结果,打印拼接的最终结果如下

到此补全日期成功啦。工具类做成了指定日期之间。可以任意设置指定的日期。个人觉得这种方式比使用SQL来解决的方式要好一点。

本文地址:http://g8akg8.riyuangf.com/news/527.html    迅易网 http://g8akg8.riyuangf.com/ , 查看更多
 
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号