Желательно выполнять вычисления усреднения на большом наборе данных. Данные собираются с устройств довольно часто, и мы хотим получить среднее значение за последний день, среднее значение за последнюю неделю, среднее значение за последний месяц и среднее значение за последний год.
К сожалению, взятие среднего значения данных за прошлый год занимает несколько минут. У меня есть только базовые знания SQL, и я надеюсь, что здесь есть некоторая полезная информация, чтобы ускорить процесс.
Таблица имеет временную метку, идентификатор, который определяет, к какому устройству относятся данные, и значение данных с плавающей запятой.
Используемый мной запрос соответствует следующему общему примеру:
select avg(value)
from table
where id in(1,2,3,4) timestamp > last_year
Редактировать: Я должен также уточнить, что они просят, чтобы эти средние значения рассчитывались на скользящей основе. Как в среднем за год. Я понимаю, что просто из-за огромного количества результатов нам, возможно, придется идти на компромисс.