我想从MySQL列中计算12个月的移动平均值。这些数据代表着时间序列的电力测量值,它是一个相当大的数据集(多年以来每隔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)
以下查询给出了特定月份和年份(比如2011年10月)的活跃移动平均值。
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得到总能量)