Mysql
 sql >> Database >  >> RDS >> Mysql

Come faccio a calcolare una media mobile usando MySQL?

Questo è appena fuori dalla mia testa, e sto uscendo dalla porta, quindi non è stato testato. Inoltre, non riesco a immaginare che funzionerebbe molto bene su qualsiasi tipo di set di dati di grandi dimensioni. Ho confermato che almeno funziona senza errori. :)

SELECT
     value_column1,
     (
     SELECT
          AVG(value_column1) AS moving_average
     FROM
          Table1 T2
     WHERE
          (
               SELECT
                    COUNT(*)
               FROM
                    Table1 T3
               WHERE
                    date_column1 BETWEEN T2.date_column1 AND T1.date_column1
          ) BETWEEN 1 AND 20
     )
FROM
     Table1 T1