我有一个带有两列的MYSQL数据库,一个是温度,另一个是读取温度的时间,如http://pastebin.mozilla.org/1860064。 温度USUALLY在读数之间有5分钟的差异,但这并不总是与这个时间间隔有关。
我需要弄清楚的是一种算法来读取所有值并保存每小时读数的平均值,因此温度将以每小时一个温度保存在数据库上,每天24次读取,这样可以节省在另一个db的表中。
例如:
它将以平均温度和日期2012-10-07 10:00:00保存,
我清楚了吗?
答案 0 :(得分:3)
以下是仅使用查询执行此操作的一种方法。如果您需要存储在数据库中的结果,您将需要自己的插入,但这将获得您正在寻找的数据。
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
这应该可以解决问题!
答案 1 :(得分:1)
另一种方法是不在任何一天过滤,包括分组条款的整天和小时:
SELECT AVG(temperature),
DATE_FORMAT(date, '%d/%m/%Y %H') day_hour_read
FROM TABLE
GROUP BY DATE_FORMAT(date, '%d/%m/%Y %H')