MySQL统计最近7天的数据

2023-12-08

我有以下架构。

表票

+------------------+--------------+------+-----+---------------------+----------------+
| Field            | Type         | Null | Key | Default             | Extra          |
+------------------+--------------+------+-----+---------------------+----------------+
| id               | int(10)      | NO   | PRI | NULL                | auto_increment |
| aid              | varchar(10)  | NO   |     |                     |                |
| ip               | varchar(100) | NO   |     |                     |                |
| host             | varchar(200) | NO   |     |                     |                |
| timestamp        | varchar(20)  | NO   |     | 0000-00-00 00:00:00 |                |
| user             | tinytext     | NO   |     | NULL                |                |
| userid           | int(10)      | NO   |     | 0                   |                |
+------------------+--------------+------+-----+---------------------+----------------+

在这里,我想获取过去 7 天内每一天的每项援助的计数,其中“0”表示没有投票支持援助的日期。这里的时间戳是unix时间戳。

非常感谢任何帮助。


MySQL 没有递归功能,因此您只能使用 NUMBERS 表技巧 -

  1. 创建一个仅保存递增数字的表 - 使用 auto_increment 很容易做到:

    DROP TABLE IF EXISTS `example`.`numbers`;
    CREATE TABLE  `example`.`numbers` (
      `id` int(10) unsigned NOT NULL auto_increment,
       PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
  2. 使用以下命令填充表:

    INSERT INTO NUMBERS
      (id)
    VALUES
      (NULL)
    

    ...您需要的任意多个值。

  3. Use DATE_ADD构建日期列表,根据 NUMBERS.id 值增加天数。将“2010-01-01”和“2010-01-02”替换为各自的开始日期和结束日期(但使用相同的格式,YYYY-MM-DD HH:MM:SS)。在此示例中,我从 CURRENT_DATE 中减去 NUMBERS.id 值,以获取上周的连续日期值列表 -

    SELECT x.dt
      FROM (SELECT DATE_SUB(CURRENT_DATE, INTERVAL (n.id - 1) DAY) AS dt
              FROM numbers n
             WHERE n.id <= 7 ) x
    
  4. 根据日期时间部分左连接到数据表。

       SELECT x.dt,
               COUNT(v.aid) AS num
         FROM (SELECT DATE_SUB(CURRENT_DATE, INTERVAL (n.id - 1) DAY) AS dt
                 FROM numbers n
                WHERE n.id <= 7 ) x
    LEFT JOIN VOTES v ON DATE(FROM_UNIXTIME(v.timestamp)) = DATE(x.dt)
     GROUP BY x.dt
     ORDER BY x.dt
    

为什么是数字而不是日期?

简单 - 可以根据数字生成日期,就像我提供的示例一样。它还意味着使用单个表,而不是每种数据类型一个表。

之前:

  SELECT DATE(FROM_UNIXTIME(v.timestamp)) AS dt,
         COUNT(v.aid)
    FROM VOTES v
   WHERE DATE(FROM_UNIXTIME(v.timestamp)) BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
                                              AND CURRENT_DATE
GROUP BY DATE(FROM_UNIXTIME(v.timestamp))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL统计最近7天的数据 的相关文章

  • MySQL 排序顺序 - 排序规则?

    我在对 MySQL 中的 char 字段进行排序时遇到困难 问题是重音字符与非重音字符混淆 例如 Abc bd Acc 我认为这可能与整理有关 所以我将表格的排序规则更改为utf8 ut8 bin 看完之后这个帖子 https stacko
  • 如何在 MySQL 中测试 Select for Update

    我正在表演SELECT FOR UPDATE或 InnoDB 表的行级锁定 我的目的是只有一个请求可以读取同一行 因此 如果两个用户同时请求相同的数据 其中只有一个人获取数据 即第一个触发查询的人 但是我如何测试锁定是否已放置 因为我正在通
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 在 SQL 中,如何从 SELECT * FROM ... 中排除结果?

    我知道我的标题不太具有描述性 让我在这里详细解释一下 假设一个表有 26 个字段 例如字段 a 字段 z 我只想要一个选择查询只返回 15 个字段 所以 通常 我会执行 SELECT field a field b field o FROM
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • php - 如何打印这个多维数组? [复制]

    这个问题在这里已经有答案了 假设我有以下数组 Array 1284487200 gt Array title gt first title link gt http 3A 2F 2Fexample1 com 1261271380 gt Ar
  • 数组类型列 Spark 数据框中不区分大小写的搜索

    我有如下 Spark 数据框 col1 words An An attractive thin low profile attractive An attractive thin low profile
  • 使用 VBA 刷新单个查询的最佳选择

    我有一本包含 4 6 个查询的工作簿 我只想使用 VBA 刷新 6 个查询中的 1 个 我的问题是 我使用的是下面最快的选项吗 不 我不想在 Excel 中使用 全部刷新 刷新 按钮 我需要将其包含在子项中 CODE ThisWorkboo
  • 如何在PyQt5中使用QtWebEngine createWindow

    我正在尝试制作一个包含 QWebEngineView 的窗口 现在我希望浏览器能够处理创建窗口或 blank 类型触发器 或者专门在需要时在新窗口中打开 URL 在下面的代码中 当浏览器需要创建窗口时 会调用 createwindow 但不
  • Lua中计算字符串转换为int

    我正在尝试将包含多个数字的字符串转换为单个 int 像这样 x 5 5 amount of numbers is not constant y tonumber x print y 这样做的结果是nil虽然应该是10 整数 我解决这个问题的
  • MariaDB 10.2 和 Openssl 1.1.0e 出现“不完整类型 MD5_CONTEXT”错误

    我无法在 CentOS 7 中构建启用 RocksDB 的 MariaDB 10 2 它有以下编译错误 root mariadb 10 2 mysys ssl my md5 cc In function void md5 result MD
  • 嵌套 JSON 数组和 D3JS

    我正在尝试使用嵌套 json 数组通过 d3 js 绘制多系列图表 我在这个网站和其他网站上查看了很多地方 虽然有类似的主题 但我似乎无法使语法适用于我的特定问题 这是一个简单的问题 制作折线图 如下所示 http bl ocks org
  • 在 ScriptSharp 项目中对 C# 代码进行单元测试

    我使用 ScriptSharp 创建 RIA 应用程序 除了一些奇怪的地方之外 效果还不错 然而 使用 Firebug 查找和修复问题并不是很方便 由于 scriptsharp 还提供了一个 Dll 我希望使用一个单独的测试项目 使用 Nu
  • ReadString() 是否丢弃换行符后的字节?

    我正在尝试通过以下方式从网络连接读取数据 func getIn conn net Conn for in err bufio NewReader conn ReadString n if err nil fmt Printf err Err
  • 更正 Android 中的印地语 (Unicode) 渲染

    我成功添加了自定义字体 DroidSansFallBack ttf 以显示印地语字符而不是 Pre ICS 上的块 无论如何 4 1 上一切都运行良好 但 Froyo 和 Gingerbread 上的渲染顺序是错误的 我明白问题没有解决ht
  • Homebrew 拒绝链接 OpenSSL

    我正在使用 OSX 10 11 6 Homebrew 版本 0 9 9m OpenSSL 0 9 8zg 2015 年 7 月 14 日 我正在尝试使用 dotnetcore 并遵循他们的指示 我已经升级 安装了最新版本的 openssl
  • Excel 2007 中的 Application.filesearch 带循环

    我已经进行了多次搜索 并且在使用现在不存在的 filesearch 时很难找到正确的代码 我已经研究过使用 Dir 和 FileSystemObject 但在搜索后使用循环时没有任何混乱 我希望你能够帮助我得出一个更容易的结论 简而言之 我
  • excel 2007宏验证输入单元格的数据并显示消息框(如果不正确)

    请有人帮忙编写以下代码 它在以下行给我一个错误 Set range C5 L14 这是完整的代码 Private Sub Worksheet Change ByVal Target As Excel range Dim ws As Work
  • if-else 与 ifelse 与列表的比较

    为什么 if else 结构和函数 ifelse 的行为不同 mylist lt list list a 1 b 2 list x 10 y 20 l1 lt ifelse sum sapply mylist class list 0 my
  • 如何异步调用 AWS Lambda 函数

    有谁知道异步而不是同步调用 Amazon AWS Lambda 函数的当前正确方法 AWS Java SDK 中的 InvokeAsync API 仍然可用 但标记为已弃用 他们建议您使用 Invoke API 我不明白为什么他们会强迫我们
  • 捆绑脚本无法正常工作 MVC

    我捆绑了 jquery 验证脚本 例如 bundles Add new ScriptBundle bundles jqueryval Include Scripts jquery unobtrusive Scripts jquery val
  • 强制 VB.NET 生成与 C# 相同的字符串比较表达式?

    这里有些类似的问题 C 和 VB Net 字符串比较的区别 但和我现在问的不一样 我正在创建一个简单的表达式遍历器 它将 lambda 转换为 SQL WHERE 子句 我这样称呼它 GetEntities
  • 如何在 Android Studio 0.5.1 上导入模块?

    我刚刚将 Android Studio 更新到 0 5 1 我需要将 Facebook SDK 导入到我的项目中 下列的脸书的指南 我应该 使用 Command 向下箭头打开 项目结构 对话框 在 OS X 上 选择左侧导航栏下的模块 单击
  • Android:http登录没有达到预期的效果

    我似乎无法让登录页面正常工作 它一直告诉我我的用户名 密码不正确 而我显然知道它们不正确 所以我开始调试并弹出 log v 我发现了一些有趣的东西 查找显示 class LogMeIn extends AsyncTask
  • MySQL统计最近7天的数据

    我有以下架构 表票 Field Type Null Key Default Extra id int 10 NO PRI NULL auto increme