gpt4 book ai didi

mysql - 如何选取一天中每个小时的最新记录

转载 作者:行者123 更新时间:2023-11-29 02:25:11 25 4
gpt4 key购买 nike

我想根据日期时间列“reading_on”选择给定日期每小时的最新记录。我已经执行了以下查询

hourly_max =   InverterReading
.where("DATE(reading_on) = ? AND imei = ?", Date.today, "770000000000126")
.group("HOUR(reading_on)")
.having("max(HOUR(reading_on))")

hourly_max.group_by(&:id).each { |k,v| puts v.last.reading_on }

在上面的查询中,我没有得到所需的结果。选择一天中每个小时的最新记录的正确方法是什么。下面是表结构

enter image description here

最佳答案

SELECT 
HOUR(a.reading_on) As hr, max(a.id),a.reading_on
FROM
InverterReadings a
LEFT JOIN
InverterReadings b
ON
YEAR(a.reading_on)=YEAR(b.reading_on)
AND MONTH(a.reading_on)=MONTH(b.reading_on)
AND day(a.reading_on)=day(b.reading_on)
AND hour(a.reading_on)=hour(b.reading_on)
AND
a.reading_on < b.reading_on
WHERE
b.reading_on is null
group by a.reading_on;

演示:http://sqlfiddle.com/#!2/49a69/14

关于mysql - 如何选取一天中每个小时的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23707871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com