MySQL в среднем за 10 минут в течение 24 часов

У меня есть таблица, которая обновляется каждые 10 секунд с данными. Мне нужно получить среднее за 10 минут, за 24 часа на конкретную дату.

Я попытался сделать это и увеличить время на 10 минут через php.

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, который даст мне 10-минутные средние значения за 24 часа в течение определенного дня?

0

Решение

Вот один способ получить строку для каждых 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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector