我有一个包含两列的MYSQL DB,一列是温度,另一列是读取温度的时间,比如http://pastebin.mozilla.org/1860064。两次读取之间的温度通常有5分钟的差异,但这种时间间隔并不总是如此。
我需要弄清楚的是一个算法来读取所有的值并保存每小时读取的平均值,所以温度将保存在数据库中,每小时一个温度,每天24次读取,它将保存在另一个数据库的表中。
例如:

它将与平均温度和日期2012-10-07 10:00:00一起保存,
我说得够清楚了吗?
发布于 2012-10-07 23:03:04
这里有一种只使用查询就可以做到这一点的方法。如果您需要将结果存储在数据库中,则需要使用自己的插入,但这将为您提供所需的数据。
SELECT AVG(temperature),HOUR(read_time) as read_hour FROM temperature_reads WHERE DATE(read_time) = '2012-10-06' GROUP BY read_hour您可以将2012-10-06部件替换为您正在查看的任何日期。
编辑:此处会更新您的信息:
SELECT AVG(temperatura),HOUR(data) as read_hour FROM leituras WHERE DATE(read_time) = '2012-10-06' GROUP BY read_hour这应该能起到作用!
发布于 2012-10-07 23:08:25
另一种方法是不过滤任何一天,并在grouping子句中包括整个一天和一小时:
SELECT AVG(temperature),
DATE_FORMAT(date, '%d/%m/%Y %H') day_hour_read
FROM TABLE
GROUP BY DATE_FORMAT(date, '%d/%m/%Y %H')https://stackoverflow.com/questions/12769713
复制相似问题