如何编写按日期接收数据的查询?

2024-03-21

我写了一个简单的查询

SELECT date, count(user) as count FROM sessions GROUP BY date;

回应是这样的

但是,我想查看每个日期,如果日期不存在,行必须是这样的

2018-02-01 | 0
2018-02-02 | 0
2018-02-03 | 0
2018-02-04 | 0
2018-02-05 | 1503582
2018-02-06 | 0
2018-02-06 | 0
2018-02-08 | 5612270
...
...
...
2018-02-31 | 0

我应该如何重写我的查询来获取飞蛾中每天的数据?


您需要首先生成一个日历并将其行与表连接起来session通过date柱子。下面的子查询将根据设置的值生成所有 1 个月@START_DATE多变的。

SET  @START_DATE  = '2018-01-01';  -- set your starting date here

SELECT  a.`DATE`,
        COUNT(b.user) AS `COUNT`
FROM
        (
            SELECT DATE(cal.date) `DATE` 
            FROM ( 
                SELECT @START_DATE + INTERVAL xc DAY AS date 
                FROM ( 
                      SELECT @xi:=@xi+1 as xc from 
                      (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) xc1, 
                      (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) xc2, 
                      (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) xc3, 
                      (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) xc4, 
                      (SELECT @xi:=-1) xc0 
                ) xxc1 
            ) cal 
            WHERE cal.date <= DATE_ADD(DATE_ADD(@START_DATE, INTERVAL 1 MONTH), INTERVAL -1 DAY)
        ) a
        LEFT JOIN sessions b
            ON a.`DATE` = b.`DATE`
GROUP   BY a.`DATE`
ORDER   BY a.`DATE`

这是一个Demo http://sqlfiddle.com/#!9/0a3d61/1.

生成日期的子查询是从这个借来的文章:在 MySQL 中生成一系列日期 http://www.shayanderson.com/mysql/generating-a-series-of-dates-in-mysql.htm并进行了一些修改以允许用户输入开始日期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何编写按日期接收数据的查询? 的相关文章

随机推荐

  • 在 CoreData 中存储 NSMutableAttributedString 的简单方法

    我正在尝试存储一个NSMutableAttributedString in CoreData 但我遇到了问题 因为我的一些属性NSMutableAttributedString包含无法存档的 Core Foundation 对象 有没有一种
  • 使用 jQuery 更改图像 src 属性并不总是适用于 Chrome/Opera

    我有以下代码 用于检索我网站上照片的一小部分高分辨率部分 其想法是让人们在决定是否购买之前先了解一下原版的质量 magviewplus attr src photos original snippet php id x left y top
  • Xcode 13.2 - 添加包挂在“准备验证”上

    我最近从 Mac App Store 更新到了 Xcode 13 2 在尝试修复 Swift 软件包的问题时 我卸载了它 现在无法重新安装该软件包 当我尝试从 GitHub 添加包时 进程立即挂在 准备验证 上 我已经尝试重新启动 Xcod
  • 切换到 Python 3 导致 UnicodeDecodeError

    我刚刚将 Python3 解释器添加到 Sublime 并且以下代码停止工作 for directory in directoryList fileList os listdir directory for filename in file
  • Youtubedl CERTIFICATE_VERIFY_FAILED [重复]

    这个问题在这里已经有答案了 我在 Python 中运行了这段代码 from future import unicode literals import youtube dl ydl opts format bestaudio best po
  • sonarqube gradle 插件不包括 jacoco 集成测试

    我正在尝试将 sonarqube gradle 插件与 jacoco 插件集成 类路径 org sonarsource scanner gradle sonarqube gradle plugin 2 1 应用插件 org sonarqub
  • MongoEngine 如何处理索引(创建、更新、删除)?

    关于设置 Mongo 索引的最佳实践问题 Mongoengine 是 Python ORM 包装器 允许您在 Document 元类中设置索引 这个元类什么时候内省并添加索引 我可以通过 mongoengine Document 类构建一个
  • Android旋转动画完成

    我正在研究一个RotateAnimation 我开始旋转图像 但我想知道动画何时完成 我如何知道动画何时结束 下面是我的旋转图像代码 RotateAnimation rotateanimation new RotateAnimation S
  • 如何在Delphi XE4中使用ADOX组件?

    我在一篇用Delphi 6编写的教程中读到 要安装ADOX组件 请从主菜单中选择Project Add type Library菜单项 但在Delphi XE4中没有这样的菜单项 如何在 Delphi XE4 中安装 使用 ADOX 组件以
  • laravel 5.3:UrlGenerator.php 第 314 行中的 ErrorException:未定义路由 []

    这是我在 web php 中的路线代码 Route get login array as gt login admin uses gt Auth LoginController login 控制器方法 public function log
  • 使用 DIV 作为输入

    很抱歉 如果这个问题非常基本 但我正在尝试重新编程 但我仍然坚持这个问题 我想将文本输入到 div 在 HTML 中 但我不想要默认的聊天框 div
  • Docker nginx 反向代理返回 502 bad gateway “连接到上游时连接被拒绝”

    我正在尝试在一个容器中设置 nginx 反向代理到运行我的应用程序的另一个容器 这是我的 nginx conf daemon off user nginx worker processes 1 error log var log nginx
  • 在闪亮的仪表板标题右侧添加文本

    如何在仪表板标题侧栏图标右侧添加文本 似乎以前的类似解决方案在更新后不再起作用dashboardHeader 这就是我试图在基本的闪亮仪表板设置中执行的操作 我可以使用以下策略这个答案 https stackoverflow com a 3
  • 使用 python 和 python NTLM 浏览受 NTLM 保护的网站

    我的任务是创建一个脚本 该脚本登录到企业门户 进入特定页面 下载该页面 将其与早期版本进行比较 然后根据所做的更改向特定人员发送电子邮件 最后一部分很简单 但第一步给我带来了最大的麻烦 在使用 urllib2 我尝试在 python 中执行
  • 在Python中将字符串从split函数转换为整数的有效方法

    我有一串具有以下格式的数据 xpos ypos zoom 即 8743 12083 15 我想将其拆分并存储在变量 xpos ypos 和 Zoom 中 由于我需要对这些数字进行一些计算 因此我想从一开始就将它们转换为整数 目前 我执行此操
  • 使用 css3 进行图像替换和过渡?

    我想知道是否有人知道如何在两个背景图像之间进行过渡的巧妙且新的方法 我知道有很多教程 只是其中大多数都已经过时且过时了 我想知道是否有一种聪明而现代的 CSS3 方法可以做这样的事情 我有一个简单的 logo png 设置为背景div lo
  • 无法将泛型转换为扩展嵌套类型

    最近 当我遇到无法解释的通用转换问题时 我正在重构一个通用方法 最后我意识到我可以完全不用 T 类型 只需自己内联它 但我仍然很好奇为什么转换失败 我创建了这个最小的例子来说明这个问题 有人可以解释一下为什么转换失败而解决方法有效吗 pub
  • 无法实例化fragment找不到Fragment构造函数android

    我遇到以下错误 我在 DailyVerseFragment 上添加了构造函数 但还是不行 我遇到这个问题已经超过一周了 Fatal Exception java lang RuntimeException Unable to start a
  • 如何从终端运行 mvim (MacVim)?

    我安装了 MacVim 并尝试将其设置为 Git 版本控制 的编辑器 但我无法从命令行运行 mvim 因为它无法识别 如何设置 mvim 以便可以从终端运行它 我不认为我会在路径中添加任何东西 是的 brew install macvim
  • 如何编写按日期接收数据的查询?

    我写了一个简单的查询 SELECT date count user as count FROM sessions GROUP BY date 回应是这样的 但是 我想查看每个日期 如果日期不存在 行必须是这样的 2018 02 01 0 2