Я хочу рассчитать скользящее среднее за 12 месяцев из столбца MySQL.Данные представляют измерения мощности временных рядов, это большой набор данных (каждые 10 минут в течение нескольких лет).Высокопроизводительный запрос был бы хорош, но со скоростью я могу справиться позже.
DTE Active
2012-1-3 00:10 500
2012-1-3 00:20 520
... etc
Следующий запрос дает мне общее количество активных за каждый месяц:
SELECT YEAR(DTE) AS year, MONTH(DTE) AS month, SUM(Active)/6 as total FROM saturne s GROUP BY YEAR(DTE), MONTH(DTE)
Следующий запросдает мне скользящее среднее значение Active за данный месяц и год - скажем, октябрь 2011 года
SELECT SUM(Active)/6 AS average FROM saturne
WHERE (YEAR(DTE) = 2011 AND MONTH(DTE) <= 10) OR (YEAR(DTE) = 2010 AND MONTH(DTE) > 10)
Однако я хотел бы создать запрос, который возвращает итоговую сумму за месяц и скользящее среднее за 12 месяцев в следующем столбце.
year month total average
2012 2 701474 9258089
2012 1 877535 9386664
... etc
(Коэффициент 6 связан с тем, что данные представляют мгновенную мощность, записанную каждые 10 минут, а деление общего числа на 6 дает общую энергию)