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

Hvordan beregner man et glidende gennemsnit i MySQL i en korreleret underforespørgsel?

Hvis din tidslinje er kontinuerlig (1 værdi hver dag), kan du forbedre dit første forsøg på denne måde:

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

Hvis din tidslinje har huller i det, vil dette resultere i mindre end 5 værdier for gennemsnittet.




  1. Tilslutning af PolyBase til Salesforce.com

  2. MySQL-baseret webapp:Den nemmeste måde for brugere at vælge ordre eller varer?

  3. Sådan tilføjes en separator til en sammenkædet streng i MySQL – CONCAT_WS()

  4. Hvad er transaction.commit() i Hibernate?