sql >> Databasteknik >  >> RDS >> Mysql

Hur beräknar man ett glidande medelvärde i MySQL i en korrelerad delfråga?

Om din tidslinje är kontinuerlig (1 värde varje dag) kan du förbättra ditt första försök så här:

SELECT c.date,
       ( SELECT AVERAGE(m.value) 
         FROM   measures as m
         WHERE  m.measured_on_dt 
                    BETWEEN DATE_SUB(c.date, INTERVAL 5 day) AND c.date
       ) as `average_to_date`
FROM    calendar c
WHERE   c.date between date1 AND date2  -- graph boundaries
ORDER BY c.date ASC

Om din tidslinje har hål i den skulle detta resultera i mindre än 5 värden för genomsnittet.




  1. Symfony 2:INNER JOIN på icke-relaterad tabell med doktrinfrågebyggaren

  2. MySQLConverter'-objektet har inget attribut '_tuple_to_mysql'-undantag med mysql-connector

  3. Hur MAKE_SET() fungerar i MariaDB

  4. Reverse engineer SQLAlchemy deklarativ klassdefinition från befintlig MySQL-databas?