2012-10-24 4 views
0

유닉스 타임 스탬프로 1 ~ 3 초마다 온도를 기록하고 있습니다. 평균 1 분 간격으로 평균 24 시간 동안 데이터를 얻고 싶습니다. 이 같은매 분마다의 Mysql 평균 값은 유닉스 타임 스탬프를 참조하십시오.

내 로거 테이블의 모양을

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 평균 유닉스 시간이 아니지만 평균 시간에 유닉스 시간으로 돌아올 수있는 방법에 가깝다. – Nont

+0

내가 abit을 수정하면 작동하는데, 대단히 감사한다. – 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

아무것도 반환하지 않습니다 Arun – Nont

+0

이 1 분 내에 데이터가 없을 수 있습니다. –

관련 문제