葬空吟 2023-04-18 09:54 采纳率: 61.2%
浏览 35
已结题

MySQL数据日期补空

MySQL数据查询后日期不是连续的,如何操作能够把日期补上?对应的数据值可以是0,也可以是空
PS:不要关联其他表,代码尽可能少点

img

  • 写回答

3条回答 默认 最新

  • AllenGd 大数据领域优质创作者 2023-04-18 12:00
    关注

    1、方法一:
    拿MySQL的user表举个例子:

    SELECT data.day,IFNULL(data.count, 0), day_list.day as date 
    from
    (select DATE_FORMAT(password_last_changed, '%Y-%m-%d') day, count(user) count from user GROUP BY day) data
    right join
    (SELECT @date := DATE_ADD(@date, interval 1 day) day from
    (SELECT @date := DATE_ADD('2023-02-01', interval -1 day) from dual)   --  随便一个表,但这个表的数据量一定要大于你要自增连续日期的表条数(或者更多)这个数量才可以,不然查询的数据数量会少。假如你想查询365天,你可以随便找一张数量大于365条的表放在这里
    days ) day_list on day_list.day = data.day;
    

    方法二:创建一张日期连续的表

    create table table_a (date_continuous varchar(32));
    insert into table_a values ('2023-01-01'),('2023-01-02')...
    select 
    t1.date_continuous,
    t2.数据列
    from table_a t1 left join 目标表 t2
    on t1.date_continuous = t2.date;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月19日
  • 已采纳回答 4月19日
  • 创建了问题 4月18日

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染