Mysql统计近30天的数据,无数据的填充0。 这个应该是我们在做统计分析的时候,经常遇到的一个需求。

先说一般的实现方式,就是按照日期进行分组,但是这样会有一个问题,如果数据库表中有一天没有数据,那么是统计不出来结果的。类似下图

2020-01-01  10
2020-01-03  20
2020-01-04  4

这个时候,我们发现,2020-01-02 这一天是没有数据的,我们希望没有数据的这一天得到也能返回日期,而对应的数据是0,期望如下:

2020-01-01  10
2020-01-02  0
2020-01-03  20
2020-01-04  4

这时候,单单group by就没办法实现了。

那应该怎么办呢?

一般情况就是我们应该先获取一个日期的虚拟表,把这30天的时间都列出来,然后用这个日期虚拟表再去关联我们的业务表,关联没数据的值设置为空即可,那么怎么得到近30天的日期的,给出sql实现方式

 SELECT@s := @s + 1 AS indexs,DATE_FORMAT( DATE( DATE_SUB( CURRENT_DATE, INTERVAL @s DAY ) ), '%Y-%m-%d' ) AS dates FROMmysql.help_topic,( SELECT @s := -1 ) temp  #不想包含当天,@s:=0WHERE@s < 30 ORDER BYdates 

运行得到的结果如下

当然可根据自己的需要进行排序,时间有了,接下来直接关联自己的业务表就可以了,给出demo:


SELECTdate_table.dates AS dateValue,IFNULL( temp.count, 0 ) AS count
FROM(SELECT@s := @s + 1 AS indexs,DATE_FORMAT( DATE( DATE_SUB( CURRENT_DATE, INTERVAL @s DAY ) ), '%Y-%m-%d' ) AS dates FROMmysql.help_topic,( SELECT @s := 0 ) temp WHERE@s < 30 ORDER BYdates ) date_tableLEFT JOIN (SELECT LEFT( create_time, 10 ) AS dateValue,count( * ) AS count FROMmonitor_log_record t1 WHEREt1.log_type = 1 AND t1.error_type = 1 AND t1.project_id = 1 GROUP BYLEFT ( create_time, 10 ) ) temp ON date_table.dates = temp.dateValue
ORDER BYdate_table.dates DESC

好了,记录一下,希望可以帮助到你。有帮助的话记得点赞收藏加关注,感谢!!

Mysql统计近30天的数据,无数据的填充0相关推荐

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

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

  2. Mysql统计近6个月的数据,无数据的填充0

    之前写过一遍文章,记录了Mysql统计近30天的数据,无数据填0的方式.主要思路就是利用mysql中的函数,生成一列30天的日期格式的数据,在通过这张临时表的数据去左关联我们的业务数据,由于用的是左关 ...

  3. mysql 计算近30天总金额_MySQL数分实战:咖啡店精细化运营

    前期,我们已经对MySQL的增删改查.以及多种查询方式和窗口.视图进行了解学习.本次我们利用前期所积累的知识进行数据分析实战. 本次实战数据源来自: Superset​superset.workeri ...

  4. mysql统计近n天每天的数据量

    第一步 查询近n天的日期(以查询最近七天为例) SELECT@s :=@s + 1 AS _index,DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS ...

  5. mysql 查询近几天的数据

    前言 mysql 需求:查询近30天的文章 查询近30天的文章 SELECT * FROM article WHERE pubTime >= NOW( ) - INTERVAL 30 DAY 注 ...

  6. mysql 计算近30天总金额_电商网站销售数据分析(MYSQL)

    1.背景及目的 数据来源于某CD电商网站的用户订单记录,共23570名用户.69659条数据. 通过分析数据,了解该网站的用户行为.忠诚度.生命周期价值等内容,为营销策略及方案提供一定的依据. 2.数 ...

  7. MySQL获取近12个月数据SQL

    ##获取近12个月数据 SELECT TYEAR,TMONTH,CONCAT(SUBSTRING(TYEAR,3),'/',TMONTH) AS T_TIME,MARKETNAME,SJJY_WGDL ...

  8. mysql 计算近30天总金额_mysql┃一条更新语句是怎么执行的???

    本文共:3018字 预计阅读时间:8分钟 文章首发于我的微信公众号:哪儿来的moon,欢迎大家关注 mysql┃一条更新语句是怎么执行的??? 前言 通过上一篇文章的内容,大家已经对mysql的基本架 ...

  9. Mysql查询最近30天的数据(每天的业绩总和数据)

    需求:查询最近30天每天的业绩总和(当天没有业绩的默认为0) 1.刚开始我的sql是这样写的: SELECT truncate(sum(af2.money),2) as m,DATE_FORMAT(a ...

最新文章

  1. android 没有 layout_above,在RelativeLayout布局中layout_above不起作用
  2. jquery操作checkbox最佳方法
  3. Kali渗透测试工具库(一)sprata--信息收集扫描爆破集成
  4. iOS中AutoLayout自动布局,自适应高度
  5. 今晚去参加了ZTE IP产品线的活动
  6. 学生选课系统代码--分析2需求分析
  7. UMLChina公众号文章精选(20220126更新精选)
  8. 百度地图点击地图获取地址
  9. matlab中如何定义局部变量,matlab局部变量定义 persistent
  10. 【NodeJS】Codecademy学习笔记
  11. PHP 版 微信小程序商城 源码和搭建
  12. 【逗老师带你学IT】PRTG安装教程-部署简单功能强大的监控软件
  13. 粒径测量中的D10 D50 D90的含义
  14. 一段话中手机号中间四位做特殊处理
  15. 【web项目】前端生日礼物--注册页面篇
  16. Java学习笔记:web2
  17. Caffe中均值文件的问题
  18. 好久没来写文章了 。到此一游
  19. 法医检验鉴定中心实验室建设思路
  20. Oracle Database 下载地址。无需要注册直接下载

热门文章

  1. uip1.0核心模块uip_process函数解读
  2. 纸吸管,是下一个环保智商税吗?
  3. 机器视觉中的光源选型
  4. robotiq自适应二指夹爪分析
  5. 今年诺贝尔奖得主居然把这事研究清楚了:学历和收入到底有多大关系?
  6. 3分钟制作一个APP,六款国际热门互联网产品
  7. 人工智能导论学习笔记(考前复习)
  8. 数字基带信号及其频谱特性
  9. 开源社区Github在2022年06月09日公测了三个新的成就徽章
  10. linux设备驱动归纳总结(三):6.poll和sellct (2010-12-27 21:32)