Я хочу рассчитать скользящую среднюю 12 месяцев из столбца MySQL. Данные представляют измерения мощности во временном ряду, это довольно большой набор данных (каждые 10 минут в течение нескольких лет). Высокопроизводительный запрос будет приятным, но скорость - это то, что я смогу выработать позже.Рассчитать скользящие средние в SQL
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)
Следующий запрос дает мне скользящую среднюю Активный за определенный месяц и год - говорят октября 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 дает суммарную энергию)