美文网首页
MySQL统计最近30日数据日期列表

MySQL统计最近30日数据日期列表

作者: 静美书斋 | 来源:发表于2019-11-03 22:59 被阅读0次

要求:统计表中最近30日(包括今日)的数据,如果数据没有,则以0代替

方式一:显示所有日期列表,无数据时补0

SQL语句如下:

select t.date as overThirtyDays,
IFNULL(SUM(case when DATE_FORMAT(ct.create_time,'%Y-%m-%d')=t.date then 1 else 0 end),0) as userTaskCountEveryDay
from (
select DATE_FORMAT(DATE_SUB(NOW(),INTERVAL xc DAY),'%Y-%m-%d') as date
from (
    select @xi:=@xi+1 as xc from 
    (select 1 UNION select 2 UNION select 3 UNION select 4 UNION select 5) xc1,
    (select 1 UNION select 2 UNION select 3 UNION select 4 UNION select 5 UNION select 6) xc2,
    (select @xi:=-1) xc0
) tt) t,t_capture_task ct
where ct.node_code='user_100' 
group by t.date;

说明
1、当前时间为:2019-09-27,当xc0中的xi为-1时,则从2019-08-292019-09-27;当xi为0时,则从2019-08-282019-09-26
2、xc1与xc2为定义数据条数:5*6=30,即查询30天的数据
3、DATE_SUB(NOW(),INTERVAL xc DAY),'%Y-%m-%d'为定义数据拓展规律,NOW()是表示当前日期,INTERVAL xc DAY表示根据变量xc的值变化,如果xc是1,那么就当前日往前推1。

如下图:


方式一:最近30天的统计数据

方式二:只显示有数据的日期

select DATE_FORMAT(create_time,'%Y-%m-%d') as overThirtyDays
,count(1) as userTaskCountEveryDay
from t_capture_task 
where create_time > DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 30 DAY),'%Y-%m-%d') 
and node_code='user_100' 
GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d');

如下图


方式二:最近30天的统计数据

文章参照

相关文章

  • MySQL统计最近30日数据日期列表

    要求:统计表中最近30日(包括今日)的数据,如果数据没有,则以0代替 方式一:显示所有日期列表,无数据时补0 SQ...

  • mysql 生成两个日期之间的月份和日期

    msyql 脚本处理两个日期之前的月份列表记录和日期列表记录 需求:最近有个需求,需要安时间区间统计一张表中的数据...

  • mysql日期统计查询

    格式化日期字段为年月日格式: DATE_FORMAT(create_time, '%Y%m%d') 通过日期查询对...

  • Mysql查询数据日期不连续补全的问题

    场景:同学问我要做个报表的折线图统计日期金额 数据库MYSQL 于是随便找个表写个例子 但是日期不连续,虽然前端控...

  • Mysql 中按日期统计数据

    DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式...

  • Mysql 如何按照日期聚合数据

    按照日期聚合数据,这里指的是统计一定时间范围内数据条目的个数。 场景: mysql表里面两个字段,一个是id主键,...

  • MYSQL复习

    mysql数据库学习 -- mysql里面的数据类型-- 数值-- 字符串-- 日期 -- 创建数据库?creat...

  • MYSQL记录存储过程SQL异常错误信息

    最近接触到mysql的存储过程,主要用于统计数据。 此外需要记录存储过程的执行状态,异常日志。MYSQL手册描述(...

  • 特殊Mysql的语法

    1、mysql按月,按日分组统计数据 按月统计数据 ``` select DATE_FORMAT(createt...

  • MySQL 速查手册

    MySQL 管理MySQL的命令 show databases; 列出DBMS的数据库列表 use databas...

网友评论

      本文标题:MySQL统计最近30日数据日期列表

      本文链接:https://www.haomeiwen.com/subject/mmyauctx.html