Thursday, August 29, 2013

[sql]對數據每隔一段時間取一次平均

對四個欄位,每隔十分鐘,對十分鐘前的所有數值取一次平均值。
select time, cast(temp as DECIMAL(5,2)),cast(pi_temp as DECIMAL(4,2)), cast(humidity as DECIMAL(4,2)), cast(battery as DECIMAL(5,3)) 
from ( 
 select max(income_time) as time, avg(temperature) as temp, avg(temp_raspberry) as pi_temp, avg(humidity) as humidity, avg(battery) as battery 
 from( 
  select * 
  from sta_01 
  order by income_time DESC limit 3000 offset 0
 )   
 as foo
 group by to_char(income_time, 'YYYY MM DD HH24'), floor(date_part('min',income_time)/10) 
 order by time
)
as foo1 

No comments: