zoukankan      html  css  js  c++  java
  • My Sql 查询连续天数数据

    1、新建1个日期表当中间表

        

    CREATE TABLE num (i INT);-- 创建一个表用来储存0-9的数字

    INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的数字,方便以后计算时间

    CREATE TABLE  IF NOT EXISTS calendar(DATE DATE); -- 生成一个存储日期的表,date是字段名

    -- 这里是生成并插入日期数据

    INSERT INTO calendar(DATE) SELECT

        ADDDATE(

            (   -- 起始日期,从2017-1-1开始

                DATE_FORMAT("2017-1-1", '%Y-%m-%d')

            ),

            numlist.id

        ) AS `date`

    FROM

        (

            SELECT

                n1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000 AS id

            FROM

                num n1

            CROSS JOIN num AS n10

            CROSS JOIN num AS n100

            CROSS JOIN num AS n1000

        ) AS numlist;

     

     

    2、联接日期表查询相应的数据

     

    SELECT COUNT(u.id) AS num, c.date FROM calendar AS c

    LEFT JOIN users AS u ON c.date = u.`created_at`

    WHERE c.date BETWEEN '2017-05-01' AND '2017-05-07'

    GROUP BY c.`date`

    ORDER BY c.`date`

     

     

     

    源:https://www.php.cn/mysql-tutorials-418668.html

  • 相关阅读:
    linux基础_用户和组的三个文件
    python_文件
    linux基础_用户组的管理
    mysql基础_数据类型
    mysql基础_操作数据库、表、记录
    linux基础_用户管理
    python_集合
    linux基础_关机重启注销
    docker创建私有仓库
    制作docker镜像
  • 原文地址:https://www.cnblogs.com/lt3232696/p/12575689.html
Copyright © 2011-2022 走看看