>>>> 2012/07/16 14:25 -0700, Rick James >>>>
Here's a different way to "smooth" numbers. It uses an exponential moving
average instead of "the last 5".
SELECT Time,
@a := (9 * @a + Value) / 10 AS moving_avg
FROM tbl
JOIN ( SELECT @a := 0 ) AS x;
Notes:
* Make 10 larger or smaller, depending on how smooth you want it.
* 9=10-1
* @a := 0 should be changed to some reasonable starting value, else the graph
will be artificially low to start with.
<<<<<<<<
Hunh, MySQL: to use the optimizer s order for an initial value never would have
occurred to me.
The important thing in using decaying average (I so know it) is this:
@a := (B * @a + C * Value) / (B + C) and B, C > 0. The bigger B is the more
important the past; therefore, the change is smaller and the graph is smoother.
The smaller B is the less important the initial value is.
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql