RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 556139
Accepted
Durrasell
Durrasell
Asked:2020-08-17 05:35:18 +0000 UTC2020-08-17 05:35:18 +0000 UTC 2020-08-17 05:35:18 +0000 UTC

获取特定时期mysql的每一天的数据

  • 772

表中有数据

visit_id    visit_date  hosts   views   
1   2016-08-16  12  45
2   2016-08-01  10  95
3   2016-08-04  24  56
4   2016-08-17  45  134

您需要请求一段时间(例如,上个月)的每一天的数据。如果当天没有数据,则应该有日期和 0。

注意到有必要执行程序并创建临时表。直到他掌握为止。

我将不胜感激

mysql
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    cheops
    2020-08-17T19:38:50Z2020-08-17T19:38:50Z

    没有必要创建存储过程。但是,您很可能需要一个额外的供体表,该表将为您提供最后一个间隔的天数来源。下面是这样一个表last_days,包含从 0 到 29 的 30 个条目,可以用来形成上个月的日期列表。该表被设计为临时表,但这不是必需的,您可以使用永久表。

    CREATE TEMPORARY TABLE last_days (
      day INT
    );
    INSERT INTO last_days
    VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),
           (11), (12), (13), (14), (15), (16), (17), (18), (19), (20),
           (21), (22), (23), (24), (25), (26), (27), (28), (29);
    

    可以使用以下查询生成日期

    SELECT
      DATE(NOW() - INTERVAL l.day DAY) AS day
    FROM
      last_days AS l;
    

    让您的统计数据位于visists具有以下结构的表格中

    CREATE TABLE visits (
      visit_id INT,
      visit_date DATE,
      hosts INT,
      views INT
    );
    
    INSERT INTO visits
    VALUES
    (1, '2016-08-16', 12, 45),
    (2, '2016-08-01', 10, 95),
    (3, '2016-08-04', 24, 56),
    (4, '2016-08-17', 45, 134);
    

    然后生成的查询,提取上个月的统计数据并按天分组,可能如下所示:

    SELECT
      DATE(NOW() - INTERVAL l.day DAY) AS day,
      COALESCE(SUM(v.hosts), 0) AS hosts,
      COALESCE(SUM(v.views), 0) AS views
    FROM
      last_days AS l
    LEFT JOIN
      visits AS v
    ON
      DATE(NOW() - INTERVAL l.day DAY) = v.visit_date
    GROUP BY
      DATE(NOW() - INTERVAL l.day DAY);
    +------------+-------+-------+
    | day        | hosts | views |
    +------------+-------+-------+
    | 2016-07-19 |     0 |     0 |
    ...
    | 2016-08-01 |    10 |    95 |
    | 2016-08-02 |     0 |     0 |
    | 2016-08-03 |     0 |     0 |
    | 2016-08-04 |    24 |    56 |
    | 2016-08-05 |     0 |     0 |
    | 2016-08-06 |     0 |     0 |
    | 2016-08-07 |     0 |     0 |
    | 2016-08-08 |     0 |     0 |
    | 2016-08-09 |     0 |     0 |
    | 2016-08-10 |     0 |     0 |
    | 2016-08-11 |     0 |     0 |
    | 2016-08-12 |     0 |     0 |
    | 2016-08-13 |     0 |     0 |
    | 2016-08-14 |     0 |     0 |
    | 2016-08-15 |     0 |     0 |
    | 2016-08-16 |    12 |    45 |
    | 2016-08-17 |    45 |   134 |
    +------------+-------+-------+
    
    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何停止编写糟糕的代码?

    • 3 个回答
  • Marko Smith

    onCreateView 方法重构

    • 1 个回答
  • Marko Smith

    通用还是非通用

    • 2 个回答
  • Marko Smith

    如何访问 jQuery 中的列

    • 1 个回答
  • Marko Smith

    *.tga 文件的组重命名(3620 个)

    • 1 个回答
  • Marko Smith

    内存分配列表C#

    • 1 个回答
  • Marko Smith

    常规赛适度贪婪

    • 1 个回答
  • Marko Smith

    如何制作自己的自动完成/自动更正?

    • 1 个回答
  • Marko Smith

    选择斐波那契数列

    • 2 个回答
  • Marko Smith

    所有 API 版本中的通用权限代码

    • 2 个回答
  • Martin Hope
    jfs *(星号)和 ** 双星号在 Python 中是什么意思? 2020-11-23 05:07:40 +0000 UTC
  • Martin Hope
    hwak 哪个孩子调用了父母的静态方法?还是不可能完成的任务? 2020-11-18 16:30:55 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    Arch ArrayList 与 LinkedList 的区别? 2020-09-20 02:42:49 +0000 UTC
  • Martin Hope
    iluxa1810 哪个更正确使用:if () 或 try-catch? 2020-08-23 18:56:13 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5