按小时分组时如何按最高值查询记录

问题描述 投票:0回答:1

我们有一个数据库表,每 30 分钟存储一条新记录。

数据如下: Image of our database structure

我写了以下查询:

SELECT *
FROM datastore_usage
WHERE datastore_id = 1
GROUP BY HOUR(created_at)
ORDER BY created_at DESC
LIMIT 10;

此查询结果如下:

Current Query result

我想获取该小时内使用的最高 bytes_in_use 的记录,而不是给定小时的第一个值。

我尝试将

MAX(bytes_in_use)
添加到查询中。但该值与 ID 无关并且是在时间戳创建的。

那么如何查询按小时分组的最高记录呢?

比你提前。

sql mysql
1个回答
0
投票

尝试一下是否能产生预期的结果并告诉我。如果是的话我可以解释一下。 CTE 为 ( 选择 *, ROW_NUMBER() OVER (PARTITION BY HOUR(created_at) ORDER BY bytes_in_use DESC) AS row_num 从 数据存储_使用情况 在哪里 数据存储_id = 1 ) 选择 * 从 热膨胀系数 在哪里 行数 = 1 订购依据 创建于 DESC 限制 10;

© www.soinside.com 2019 - 2024. All rights reserved.