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