0

我每 1-3 秒用 unix 时间戳记录我的温度,我希望每 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 回答