获取一个时刻开始60分钟的,每分钟数据的平均值sql怎么写,mysql的

数据库表中每分钟的数据数量不固定,需要写个sql语句,取一个时刻开始60分钟内的,每分钟数据的平均值sql,求教图片说明

不知道你在说什么?能具体点吗

declare @dt datetime
set @dt = '2015-10-19 09:28:00'; -- 开始时间
select m=convert(varchar(16), createtime, 120), avg(voc) from yourtable
where createtime between @dt and dateadd(minute, 60 ,@dt)
group by convert(varchar(16), createtime, 120)

http://zhidao.baidu.com/link?url=1dpfxQ-r6G2JlxlSVM6KiYYCL_xNSHjNXQjbUiWl3iZtENod9MhJ8ftrpA78sxssuYJtR1idOmesNp3Fap7jZK
这是你想要的,稍微改动下就可以了

参考SELECT / GROUP BY - segments of time (10 seconds, 30 seconds, etc)
函数UNIX_TIMESTAMP(createtime)把时间转换成UNIX时间戳,也就是与1970年1月1日的秒数差,因为你是要求按每分钟,所以DIV 60把秒转换成分钟,通过GROUP BY把数据分组,用AVG函数求出每个分组的平均值。

SELECT (UNIX_TIMESTAMP(createtime) DIV 60)
    , AVG(dustquantity) AS dustquantity
        , AVG(indoortemperature) AS indoortemperature
        , AVG(indoorhumidity) AS indoorhumidity
        , AVG(carbondioxide) AS carbondioxide
        , AVG(voc) AS voc
FROM 表名
GROUP BY UNIX_TIMESTAMP(createtime) DIV 60