我们有一个数据库表,每 30 分钟存储一条新记录。
我写了以下查询:
SELECT *
FROM datastore_usage
WHERE datastore_id = 1
GROUP BY HOUR(created_at)
ORDER BY created_at DESC
LIMIT 10;
此查询结果如下:
我想获取该小时内使用的最高 bytes_in_use 的记录,而不是给定小时的第一个值。
我尝试将
MAX(bytes_in_use)
添加到查询中。但该值与 ID 无关并且是在时间戳创建的。
那么如何查询按小时分组的最高记录呢?
比你提前。
尝试一下是否能产生预期的结果并告诉我。如果是的话我可以解释一下。 CTE 为 ( 选择 *, ROW_NUMBER() OVER (PARTITION BY HOUR(created_at) ORDER BY bytes_in_use DESC) AS row_num 从 数据存储_使用情况 在哪里 数据存储_id = 1 ) 选择 * 从 热膨胀系数 在哪里 行数 = 1 订购依据 创建于 DESC 限制 10;