mysql查询最近7天的数据,没有数据自动补0
问题描述
查询数据库表中最近7天的记录
select count(*),date(create_time) as date from task where datediff(now(),create_time)<=6 group by day(create_time);
但是发现某一天没有数据,结果中没有显示当天(2017-08-28)的数据
解决思路
思路一: 可以在自己的程序中做额外的补零处理
思路二: 构建一个最近七天的结果集,然后和查询的结果集合做left join(本文采用第二种方式)
select a.click_date,b.count
from (SELECT curdate() as click_dateunion allSELECT date_sub(curdate(), interval 1 day) as click_dateunion allSELECT date_sub(curdate(), interval 2 day) as click_dateunion allSELECT date_sub(curdate(), interval 3 day) as click_dateunion allSELECT date_sub(curdate(), interval 4 day) as click_dateunion allSELECT date_sub(curdate(), interval 5 day) as click_dateunion allSELECT date_sub(curdate(), interval 6 day) as click_date
) a left join (select date(create_time) as datetime, count(*) as countfrom arms_taskgroup by date(create_time)
) b on a.click_date = b.datetime;
当天2017-08-28结果显示为NULL
需要把NULL设置为0,利用ifnull函数即可
select a.click_date,ifnull(b.count,0) as count
from (SELECT curdate() as click_dateunion allSELECT date_sub(curdate(), interval 1 day) as click_dateunion allSELECT date_sub(curdate(), interval 2 day) as click_dateunion allSELECT date_sub(curdate(), interval 3 day) as click_dateunion allSELECT date_sub(curdate(), interval 4 day) as click_dateunion allSELECT date_sub(curdate(), interval 5 day) as click_dateunion allSELECT date_sub(curdate(), interval 6 day) as click_date
) a left join (select date(create_time) as datetime, count(*) as countfrom arms_taskgroup by date(create_time)
) b on a.click_date = b.datetime;
mysql查询最近7天的数据,没有数据自动补0相关推荐
- mysql统计一年12个月的数据,当某个月没数据的时候自动补0
在mysql中如何去统计12个月的数据,并且给没有数据的月份设置为0 ? 因为每个人的业务都不太一样,所以如何统计数据这个就不说了,不过我相信能看到这篇文章的人应该都已经做好数据统计,只是统计的数据并 ...
- MySQL查询一个表的前25%的数据
MySQL查询一个表的前25%的数据,SQL如下: # qianfeng SELECT g.* FROM (SELECT @rownum:=0) r join tb_shopping_car g wh ...
- MySQL查询近12个月数据,无则补0
查询近12个月数据,无则补0 select v.month,ifnull(b.count,0) count from (SELECT DATE_FORMAT(CURDATE(), '%Y-%m') A ...
- oracle数据前面补0,Oracle 数字前面自动补0
我在做一个功能的时候,明细的行项号是五位数,如: 00001,00002,,00010 这种形式,那么我们必须得在行项号前面补齐0 由于使用的是Oracle数据库,发现Oracle里面的 to_cha ...
- oracle中日期自动补全,没有数据自动补0
oracle中日期自动补全,没有数据自动补0 1. 描述 最近在项目中遇到一个问题,在进行oracle相关查询操作的时候,查询某个月的数据,这个月中某些日期没有数据,就造成了日期的缺失,我想做的就是不 ...
- mysql查询会话池_用户会话,数据控件和AM池
mysql查询会话池 最近,有人问我有关应用程序模块池的有趣问题. 众所周知,AM池包含用户会话引用的应用程序模块实例,这允许会话在后续请求时从池中获取完全相同的AM实例. 如果应用程序中有多个根应用 ...
- MySQL查询统计今年12个月的数据,没有默认为空
此处先省略二百字的废话 做报表统计的时候,常常需要在MySQL端用sql统计近12个月的数据,或者近30天的数据. 假如遇到当月没有数据,或者当天没有数据时,默认为0. SELECTCASE WHEN ...
- Mysql查询最后一条(最新)数据
Mysql查询最后一条(最新添加)的数据 查询最后一条(最新添加)的数据 做法 表中没有ID自增字段时 表中有ID自增字段时 相关知识点 参考链接 查询最后一条(最新添加)的数据 目的:项目中需要我查 ...
- Mysql 查询一天中,每个小时数据的数量
SELECT HOUR(e.time) as Hour,count(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY ...
- Mysql 查询当前时间24小时内的数据
记录一下mysql查询24小时内的sql语句 where time >=(NOW() - interval 24 hour)
最新文章
- 字典树模板+洛谷P2580 于是他错误的点名开始了
- TCP/IP网络协议栈:ARP协议详解
- flag push tcp 作用_TCP协议超详细解析及攻击/防范
- .sql文件_优化体系--sql_trace+10046事件(上篇)
- 传播路径图调查2013年初
- 解决TextView上方空白
- js实现table中td单元格合拼并求和
- MySql Undo日志 - 对聚簇索引进行CUD操作
- Echodyne为其行业领先的CUAS雷达EchoGuard拓展市场
- 第一台超高速巨型电子计算机,1997年,( )巨型机的研制成功,使我国在这个领域跨入了世界先进行列。...
- mac系统怎么制作装系统的u盘?苹果电脑u盘启动盘制作教程
- html中如何做出生年月日,出生年月日怎么换成生辰八字
- 【linux systemctl】Linux命令之systemctl命令
- 数据赋能 兴业惠民 | 山东大赛潍坊赛场决赛战火将起
- 行为验证码(AJ-Captcha快速入门)
- Q1 不同企业的竞争优势(待完成)
- 解除oracle锁表
- 删除固定时间以前的文件与文件夹bat文件
- webmatrix3 php,webmatrix下载_webmatrix v3.0 官方版_魅蓝下载
- gitee与github双向自动同步的方法