Je veux calculer une moyenne mobile de 12 mois à partir d'une colonne MySQL. Les données représentent des mesures de puissance de séries chronologiques, c'est un ensemble de données volumineux (toutes les 10 minutes pendant plusieurs années). Une requête de haute performance serait bien mais la vitesse est quelque chose que je peux travailler plus tard.Calculer des moyennes mobiles dans SQL
DTE Active
2012-1-3 00:10 500
2012-1-3 00:20 520
... etc
La requête suivante me donne le total actif pour chaque mois:
SELECT YEAR(DTE) AS year, MONTH(DTE) AS month, SUM(Active)/6 as total FROM saturne s GROUP BY YEAR(DTE), MONTH(DTE)
La requête suivante me donne la moyenne mobile active pour un mois donné et l'année - disent octobre 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)
Je voudrais cependant générer une requête qui renvoie le total mensuel et la moyenne mobile de 12 mois dans la colonne suivante.
year month total average
2012 2 701474 9258089
2012 1 877535 9386664
... etc
(Le facteur 6 est parce que les données représentent la puissance instantanée enregistrée toutes les 10 minutes, en divisant le total par 6 donne l'énergie totale)