I logging my temperature every 1-3 seconds with unix timestamp, I wish like get row of data return by average every 1 minute period and last for 24 hour.
my logger table look like this:
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
and i wish like it return as
unixtime temp
1350899052 25.37 -- average value of 1 minute range both unixtime and temp
1350899054 25.44
1350899057 25.44
please advise how is mySQL command should i do ? thank.
The following should work:
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));
Show date in normal format:
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))outputs: