我正在实施一个mysql数据库,用于保存智能家居应用程序中记录的能耗数据。然后应该在javascript框架内绘制数据。不幸的是,每8秒就会记录一次使用情况,并且有太多信息可以绘制年度消费图表。
数据会在特定时间按照时间,设备ID和消耗量保存在简单的表格中。
我希望能够按分钟,小时和最后一天的平均值自动汇总给定的数据。
经过一些研究后,我遇到了一些查询/程序来计算特定间隔的平均值。不幸的是,这对我没有太大帮助,因为我有三年的数据,我不想手工创建给定的间隔。
理想情况下,mysql中的过程应该能够按时间聚合给定的设备值并计算平均值并将其保存在单独的表中。
有没有人知道如何实现它?
答案 0 :(得分:0)
select avg(consumption) minute_average, date_format(log_date,'%m/%d/%y %H:%i') minute from data
group by date_format(log_date,'%m/%d/%y %H:%i');
select avg(consumption) hour_average, date_format(log_date,'%m/%d/%y %H') hour from data
group by date_format(log_date,'%m/%d/%y %H');
select avg(consumption) day_average, date_format(log_date,'%m/%d/%y') day from data
group by date_format(log_date,'%m/%d/%y');
注意:您也可以轻松计算任何总和,如总和或标准偏差。