问题描述

查询数据库表中最近7天的记录

select count(*),date(create_time) as date from task where datediff(now(),create_time)<=6  group by day(create_time); 

但是发现某一天没有数据,结果中没有显示当天(2017-08-28)的数据

解决思路

  1. 思路一: 可以在自己的程序中做额外的补零处理

  2. 思路二: 构建一个最近七天的结果集,然后和查询的结果集合做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相关推荐

  1. mysql统计一年12个月的数据,当某个月没数据的时候自动补0

    在mysql中如何去统计12个月的数据,并且给没有数据的月份设置为0 ? 因为每个人的业务都不太一样,所以如何统计数据这个就不说了,不过我相信能看到这篇文章的人应该都已经做好数据统计,只是统计的数据并 ...

  2. MySQL查询一个表的前25%的数据

    MySQL查询一个表的前25%的数据,SQL如下: # qianfeng SELECT g.* FROM (SELECT @rownum:=0) r join tb_shopping_car g wh ...

  3. MySQL查询近12个月数据,无则补0

    查询近12个月数据,无则补0 select v.month,ifnull(b.count,0) count from (SELECT DATE_FORMAT(CURDATE(), '%Y-%m') A ...

  4. oracle数据前面补0,Oracle 数字前面自动补0

    我在做一个功能的时候,明细的行项号是五位数,如: 00001,00002,,00010 这种形式,那么我们必须得在行项号前面补齐0 由于使用的是Oracle数据库,发现Oracle里面的 to_cha ...

  5. oracle中日期自动补全,没有数据自动补0

    oracle中日期自动补全,没有数据自动补0 1. 描述 最近在项目中遇到一个问题,在进行oracle相关查询操作的时候,查询某个月的数据,这个月中某些日期没有数据,就造成了日期的缺失,我想做的就是不 ...

  6. mysql查询会话池_用户会话,数据控件和AM池

    mysql查询会话池 最近,有人问我有关应用程序模块池的有趣问题. 众所周知,AM池包含用户会话引用的应用程序模块实例,这允许会话在后续请求时从池中获取完全相同的AM实例. 如果应用程序中有多个根应用 ...

  7. MySQL查询统计今年12个月的数据,没有默认为空

    此处先省略二百字的废话 做报表统计的时候,常常需要在MySQL端用sql统计近12个月的数据,或者近30天的数据. 假如遇到当月没有数据,或者当天没有数据时,默认为0. SELECTCASE WHEN ...

  8. Mysql查询最后一条(最新)数据

    Mysql查询最后一条(最新添加)的数据 查询最后一条(最新添加)的数据 做法 表中没有ID自增字段时 表中有ID自增字段时 相关知识点 参考链接 查询最后一条(最新添加)的数据 目的:项目中需要我查 ...

  9. Mysql 查询一天中,每个小时数据的数量

    SELECT HOUR(e.time) as Hour,count(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY ...

  10. Mysql 查询当前时间24小时内的数据

    记录一下mysql查询24小时内的sql语句 where time >=(NOW() - interval 24 hour)

最新文章

  1. 字典树模板+洛谷P2580 于是他错误的点名开始了
  2. TCP/IP网络协议栈:ARP协议详解
  3. flag push tcp 作用_TCP协议超详细解析及攻击/防范
  4. .sql文件_优化体系--sql_trace+10046事件(上篇)
  5. 传播路径图调查2013年初
  6. 解决TextView上方空白
  7. js实现table中td单元格合拼并求和
  8. MySql Undo日志 - 对聚簇索引进行CUD操作
  9. Echodyne为其行业领先的CUAS雷达EchoGuard拓展市场
  10. 第一台超高速巨型电子计算机,1997年,( )巨型机的研制成功,使我国在这个领域跨入了世界先进行列。...
  11. mac系统怎么制作装系统的u盘?苹果电脑u盘启动盘制作教程
  12. html中如何做出生年月日,出生年月日怎么换成生辰八字
  13. 【linux systemctl】Linux命令之systemctl命令
  14. 数据赋能 兴业惠民 | 山东大赛潍坊赛场决赛战火将起
  15. 行为验证码(AJ-Captcha快速入门)
  16. Q1 不同企业的竞争优势(待完成)
  17. 解除oracle锁表
  18. 删除固定时间以前的文件与文件夹bat文件
  19. webmatrix3 php,webmatrix下载_webmatrix v3.0 官方版_魅蓝下载
  20. gitee与github双向自动同步的方法

热门文章

  1. [异能程序员]第四章 偶遇(第四更)
  2. 搬运+机翻 Unity插件 OBICloth插件官方CharDemo分析
  3. 在北京注册科技类公司的经历(一):名称预审
  4. 三行代码将Excel转为任意格式的Word
  5. 用水浒传来学习OKR
  6. 网页设计如何排成一列_HTML页面布局怎么设计(图文)
  7. VUE 项目图标全部替换成阿里巴巴矢量图
  8. Excel 多个 Sheet 数据关联
  9. 工作这么多年,所经历5个骗子上司
  10. App Designer中自建回调函数