2012-10-24 95 views
0

我使用unix時間戳記每隔1-3秒記錄一次溫度,我希望得到一行數據平均每隔1分鐘返回並持續24小時。Mysql每分鐘的平均值指的是unix時間戳

我的記錄表是這樣的:

unixtime temp 
1350899052 25.37 
1350899054 25.44 
1350899057 25.44 
1350899059 25.44 
1350899062 25.44 
1350899064 25.44 
1350899069 25.44 
1350899071 25.44 

,我希望喜歡它返回的

unixtime temp 
1350899052 25.37 -- average value of 1 minute range both unixtime and temp 
1350899054 25.44 
1350899057 25.44 

請指教如何MySQL命令應該怎麼辦?謝謝。

回答

1

下面應該工作:

SELECT ROUND(unixtime/(60)) AS minute, avg(temp) FROM table where unixtime >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY)) GROUP BY ROUND(unixtime/(60));

顯示日期在正常格式:

SELECT from_unixtime(floor(unixtime/(60))*60) AS minute, avg(temp) FROM test where unixtime >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY)) GROUP BY floor(unixtime/(60))

輸出:

minute avg(temp) 
2012-10-24 08:02:00 37.5 
2012-10-24 08:03:00 45 
+0

是的,因爲它顯示了1970年的分鐘數。你的輸出應該是什麼樣子? 2012-10-12 00:00:01 25,777 2012-10-12 00:00:02 28,999 ? –

+0

我得到了回報作爲munite:22517598 26.64000075204032不unix時間平均如我所料,但接近我怎麼會得到回報作爲unix時間在平均期間,謝謝你的幫助 – Nont

+0

我修改升技和它的工作,非常感謝 – Nont

0
1. 1 min 

select * from logger_table where unixtime> timestamp(DATE_SUB(NOW(), INTERVAL 1 MINUTE)) group by temp 

2. 24 hrs 
select * from logger_table where unixtime> timestamp(DATE_SUB(NOW(), INTERVAL 24 HOUR)) group by temp; 
+0

似乎沒什麼回報阿倫 – Nont

+0

這1分鐘內可能沒有數據 –

相關問題