0

UNIXタイムスタンプを使用して1〜3秒ごとに温度を記録しています.1分ごとに平均して24時間続くデータ行を取得したいと考えています。

私のロガーテーブルは次のようになります:

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コマンドはどうすればいいですか?感謝。

4

2 に答える 2

2

以下が機能するはずです。

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
于 2012-10-24T05:58:50.840 に答える
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;
于 2012-10-24T06:02:09.987 に答える