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


    开始以为分组查询就可以

    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。

  • 相关阅读:
    常用的JVM配置参数说明
    【面经】携程数据仓库面经
    【Ubuntu】修改ubuntu和windows双系统启动顺序
    Hdoop学习笔记(HDP)-Part.19 安装Kafka
    [Spring Cloud] nacos安装与使用
    Spring的创建和使用
    Azure - 机器学习企业级服务概述与介绍
    基于JavaWeb+SSM+Vue“鼻护灵”微信小程序系统的设计和实现
    “Sources, Summary” report——“来源,摘要”报告
    实战:基于卷积的MNIST手写体分类
  • 原文地址:https://blog.csdn.net/qq_44783880/article/details/125623206