• 实现统计本周每天的数量


    开始以为分组查询就可以

    SELECT DATE_FORMAT(datetime_created, '%m-%d') days,
           count(*)                               count
    FROM (SELECT *
          FROM fnd_customer
          WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(datetime_created)) as weekadd
    
    GROUP BY days;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果出现为空的情况
    在这里插入图片描述
    目前找到解决的办法

    SELECT a.statisticDate,
           ifnull(b.count, 0) AS count
    FROM (
             SELECT curdate() AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 1 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 2 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 3 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 4 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 5 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 6 DAY) AS statisticDate
         ) a
             LEFT JOIN (SELECT date(创建时间) AS datetime, count(*) AS count
                        FROM 你的表
                        GROUP BY date(创建时间)) b
                       ON a.statisticDate = b.datetime;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
     SELECT curdate() AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 1 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 2 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 3 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 4 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 5 DAY) AS statisticDate
             UNION ALL
             SELECT date_sub(curdate(), INTERVAL 6 DAY) AS statisticDate
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    SELECT date(created_datetime) AS datetime, count(*) AS count
    FROM fnd_project_follow_record
    GROUP BY date(created_datetime)
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    实际上是上面两个表的左连接查询,其中ifnull(b.count, 0) 表示如果为空则补零,否则为count。

  • 相关阅读:
    k8s中Endpoint是什么
    SpringAOP源码解析之advice构建排序(二)
    JS装饰器的介绍
    EtherCAT与RTEX驱动器轴回零的配置与实现
    KingbaseES参数track_activity_query_size介绍
    DRV8812RHDR 集成电机驱动器 8.2-45V 28QFN
    C语言中的异常处理机制是什么?
    sql 中WITH CTE AS 用法
    Docker安装ClickHouse22.6.9.11并与SpringBoot、MyBatisPlus集成
    Python实现四维图像绘制系统
  • 原文地址:https://blog.csdn.net/qq_44783880/article/details/125623206