2012-10-07 137 views
2

我有一個MYSQL數據庫,有兩列,一個是溫度,另一個是讀取溫度的時間,如http://pastebin.mozilla.org/1860064。 溫度通常在讀數之間有5分鐘的差異,但這並不總是與這個時間差距。Mysql Php溫度平均讀數除以小時數

我需要弄清楚的是讀取所有數值並保存每小時讀取的平均值的算法,因此溫度將以每小時一個溫度,每天24個讀數保存在數據庫中,保存在另一個數據庫的表中。

例如:

enter image description here

這將節省,平均氣溫與日期2012年10月7日10:00:00,

當時我清楚了嗎?

+0

你有什麼想出這麼遠?你在哪裏碰到路障?這通常需要一個問題,否則你需要等待,並希望有人知道它與時間,直到你的問題被關閉。所以隨時添加您的(僞)代碼。歡迎來到Stackoverflow! – hakre

回答

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 

這應該做的伎倆!

+0

該表被稱爲'leituras',溫度場是'溫度',小時被稱爲'數據',這將如何適應?謝謝! –

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')