mysql 查询都是0的值(MySQL按小时查询数据,没有的补0)
类别:数据库 浏览量:2826
时间:2022-01-25 00:31:21 mysql 查询都是0的值
MySQL按小时查询数据,没有的补0需求背景
一个统计接口,前端需要返回两个数组,一个是0-23的小时计数,一个是各小时对应的统计数。
思路 直接使用group by查询要统计的表,当某个小时统计数为0时,会没有该小时分组。思考了一下,需要建立辅助表,只有一列小时,再插入0-23共24个小时
|
CREATE TABLE hours_list ( hour int NOT NULL PRIMARY KEY ) |
先查小时表,再做连接需要查的表,即可将没有统计数的小时填充上0。这里由于需要查多个表中,create_time在每个小时区间内、且SOURCE_ID等于查询条件的统计之和,所以UNION ALL了多张表
|
SELECT t. HOUR , sum (t.HOUR_COUNT) hourCount FROM ( SELECT hs. HOUR AS HOUR , COUNT (cs.RECORD_ID) AS HOUR_COUNT FROM cbc_hours_list hs LEFT JOIN cbc_source_0002 cs ON HOUR (cs.create_time) = hs. HOUR AND cs.create_time > #{startTime} AND cs.create_time <= #{endTime} <#if sourceId?exists && sourceId != '' > AND SOURCE_ID = #{sourceId} </#if> GROUP BY hs. HOUR UNION ALL SELECT hs. HOUR AS HOUR , COUNT (cs.RECORD_ID) AS HOUR_COUNT FROM cbc_hours_list hs LEFT JOIN cbc_source_hs cs ON HOUR (cs.create_time) = hs. HOUR AND cs.create_time > #{startTime} AND cs.create_time <= #{endTime} <#if sourceId?exists && sourceId != '' > AND SOURCE_ID = #{sourceId} </#if> GROUP BY hs. HOUR UNION ALL SELECT hs. HOUR AS HOUR , COUNT (cs.RECORD_ID) AS HOUR_COUNT FROM cbc_hours_list hs LEFT JOIN cbc_source_kfyj cs ON HOUR (cs.create_time) = hs. HOUR AND cs.create_time > #{startTime} AND cs.create_time <= #{endTime} <#if sourceId?exists && sourceId != '' > AND SOURCE_ID = #{sourceId} </#if> GROUP BY hs. HOUR UNION ALL SELECT hs. HOUR AS HOUR , COUNT (cs.RECORD_ID) AS HOUR_COUNT FROM cbc_hours_list hs LEFT JOIN cbc_source_his_0002 cs ON HOUR (cs.create_time) = hs. HOUR AND cs.create_time > #{startTime} AND cs.create_time <= #{endTime} <#if sourceId?exists && sourceId != '' > AND SOURCE_ID = #{sourceId} </#if> GROUP BY hs. HOUR UNION ALL SELECT hs. HOUR AS HOUR , COUNT (cs.RECORD_ID) AS HOUR_COUNT FROM cbc_hours_list hs LEFT JOIN cbc_source_his_hs cs ON HOUR (cs.create_time) = hs. HOUR AND cs.create_time > #{startTime} AND cs.create_time <= #{endTime} <#if sourceId?exists && sourceId != '' > AND SOURCE_ID = #{sourceId} </#if> GROUP BY hs. HOUR UNION ALL SELECT hs. HOUR AS HOUR , COUNT (cs.RECORD_ID) AS HOUR_COUNT FROM cbc_hours_list hs LEFT JOIN cbc_source_his_kfyj cs ON HOUR (cs.create_time) = hs. HOUR AND cs.create_time > #{startTime} AND cs.create_time <= #{endTime} <#if sourceId?exists && sourceId != '' > AND SOURCE_ID = #{sourceId} </#if> GROUP BY hs. HOUR ) t GROUP BY t. hour |
效果
统计数为0的小时也可以查出来了。
到此这篇关于MySQL按小时查询数据,没有的补0的文章就介绍到这了,更多相关MySQL按小时查询数据内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/Princar/article/details/111302667
您可能感兴趣
- php redis应用场景(PHP商品秒杀问题解决方案实例详解mysql与redis)
- docker部署mysql如何访问(完美解决docker安装mysql后Navicat连接不上的问题)
- 命令行如何使用xampp中的mysql(解决xampp自启动和mysql.sock问题)
- thinkphp5.1手动连接mysql数据库(thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例)
- win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法(win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法)
- mysql中length、char_length区别
- mysql恢复数据库(MySQL 两种恢复数据的方法)
- oraclemysql知识点(详解Mysql和Oracle之间的误区)
- redhat6.5安装mysql(Redhat7.3安装MySQL8.0.22的详细教程二进制安装)
- mysql添加数据很慢(mysql如何优化插入记录速度)
- php7用什么替代mysql(mysqli扩展无法在PHP7下升级问题的解决)
- mysql从入门到实践万字详解(mysql基础知识扫盲)
- mysql的sql语句优化5种方式(MySQL:五个常见优化SQL的技巧)
- oracle如何用脚本文件创建表空间(MySQL版oracle下scott用户建表语句实例)
- mysql的json格式解析(mysql json格式数据查询操作)
- mysql 查询都是0的值(MySQL按小时查询数据,没有的补0)
- 阴阳师孟婆御魂推荐 孟婆御魂搭配毕业套(阴阳师孟婆御魂推荐)
- 袁冰妍终于接到新剧,饰演反追男主,看到合作演员 眼光果然毒辣(袁冰妍终于接到新剧)
- 记忆中的台词(记忆中的台词)
- 袁冰妍轧戏 拍《琉璃》的同时还在拍《将夜》,难怪被骂演技差(拍琉璃的同时还在拍将夜)
- 刚红就耍大牌,《琉璃》角色滤镜碎一地,心疼工作人员(琉璃角色滤镜碎一地)
- 袁冰妍郑业成这对可以处,有脸红情话他们是真的敢说(袁冰妍郑业成这对可以处)
热门推荐
- dedecms标签分类(dedecms list增加noflag属性的方法 实现让列表标签不调用有推荐属性的文章)
- vue实现列表向上滚动更新(vue实现列表无缝滚动)
- laravel设置读写权限(解决laravel上传图片之后,目录有图片,但是访问不到404的问题)
- css中好看的渐变颜色代码(CSS Tips:段落每行渐变色文本效果的实现方法)
- 前端app开发适配消息栏(amazeui页面校验功能的实现代码)
- mysql子查询用法(MySQL 子查询和分组查询)
- css3旋转动画教学(css3动画效果抖动解决方法)
- 云服务器传统服务器配置(云服务器、高防服务器的不同之处体现在哪里?)
- docker镜像实例(Docker的镜像制作与整套项目一键打包部署的实现)
- css实现颜色渐变动画效果(CSS实现文字高光水波渐变的动态效果实例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9