mysql - 从 MySQL 获取每小时数据
问题描述
下面的查询检索 Date Hourly 并将数据分组为每小时格式
SELECT Hour(created) AS hour, created,image
FROM user_screenshot
WHERE created BETWEEN ( Curdate() + INTERVAL (SELECT Hour(Now())) hour -
INTERVAL 23 hour ) AND Now() AND date(created) = '2021-01-27'
GROUP BY hour
ORDER BY ( Curdate() + INTERVAL (SELECT Hour(Now())) hour - INTERVAL 23 hour )
没关系。但是是否有可能检索属于那个小时的所有记录。对于上面的示例,查询表示每小时有447
记录,每小时21
有1
结果22
。是否有可能在一个查询中获取数据库中存在的那些结果以及这些时间。
期望以这种方式输出
解决方案
您可以在同一张表上使用 INNER JOIN 来执行此操作。
SELECT a.hour, a.Count, b.* FROM user_screenshot as b
INNER JOIN (
SELECT Hour(created) AS hour, created, COUNT(*) AS Count
FROM user_screenshot
WHERE created BETWEEN ( Curdate() + INTERVAL (SELECT Hour(Now())) hour - INTERVAL 23 hour ) AND Now()
GROUP BY hour
ORDER BY ( Curdate() + INTERVAL (SELECT Hour(Now())) hour - INTERVAL 23 hour )
) as a
ON Hour(a.created) = Hour(b.created) WHERE date(b.created) = '2021-01-27'
推荐阅读
- c++ - 虚拟继承基础构造函数消除
- css - overflow-x: hidden 隐藏页脚行
- networking - C# .NET Core EF 或 ADO.NET 查询需要几分钟,而 SSMS 只需 30 秒,为什么?
- blazor - 我怎样才能通过列表
作为 blazor 中子组件的参数? - python - 我正在尝试获得不同的输出(带撇号)
- plsql - PL/SQL 传递关系(双向)
- reactjs - 如何仅在 React 中收到响应后从一个组件发出 GET 请求并加载不同的组件?
- c# - 为什么 .NET Core 的模型验证器会在验证消息中显示模型属性的名称而不是 JSON 字段名称?
- wordpress - WordPress:如何使用 WordPress 代码标准在保存时自动格式化文件?
- php - 当我运行这个时我得到一个数组