我有一个表,每10秒更新一次数据。我需要平均10分钟,特定日期24小时。
我尝试这样做,并通过PHP将时间增加10分钟。
select AVG(active_energy), date_time from energy_readings where date_time between "2016-11-02 00:00:00" and "2016-11-02 00:00:00"+ INTERVAL 10 MINUTE;
然后
select AVG(active_energy), date_time from energy_readings where date_time between "2016-11-02 00:10:00" and "2016-11-02 00:10:00"+ INTERVAL 10 MINUTE;
24小时。
它可以工作,但它在我的数据库服务器上需要太多负载。
是否有一个我可以使用的mysql查询,它可以让我在特定的一天24小时内获得10分钟的平均值?
答案 0 :(得分:1)
以下是为每10分钟数据获取一行的一种方法:
select date(date_time), hour(date_time), floor(minute(date_time) / 6),
avg(active_energy)
from energy_readings
where date_time >= '2016-11-02' and datetime < '2016-11-03'
group by date(date_time), hour(date_time), floor(minute(date_time) / 6)
order by min(date_time);