Mysql 时间序列的移动平均数

Mysql 时间序列的移动平均数,mysql,Mysql,我试图计算表中包含的时间序列的移动平均值(7天和30天),其中包含字段:“日期”、“时间”和“磅” 虽然我怀疑这不是理想的MySQL,但下面的代码可以生成一个适当的临时表(“mov”),其中包含每个日期的正确值 CREATE TEMPORARY TABLE IF NOT EXISTS mov ( date DATE NOT NULL PRIMARY KEY, lbs FLOAT(12), ma7d FLOAT(12), ma30d FLOAT(12) ) AS #

我试图计算表中包含的时间序列的移动平均值(7天和30天),其中包含字段:“日期”、“时间”和“磅”

虽然我怀疑这不是理想的MySQL,但下面的代码可以生成一个适当的临时表(“mov”),其中包含每个日期的正确值

CREATE TEMPORARY TABLE IF NOT EXISTS mov
(   date DATE NOT NULL PRIMARY KEY,
    lbs FLOAT(12),
    ma7d FLOAT(12),
    ma30d FLOAT(12)
) AS

# Calculates moving averages
SELECT t1.date, t1.lbs,
( SELECT SUM(t2.lbs) / COUNT(t2.lbs) FROM mass AS t2 
WHERE DATEDIFF(t1.date, t2.date) BETWEEN 0 AND 6 ) AS 'ma7d', 
( SELECT SUM(t2.lbs) / COUNT(t2.lbs) FROM mass AS t2 
WHERE DATEDIFF(t1.date, t2.date) BETWEEN 0 AND 29 ) AS 'ma30d' 
FROM mass AS t1;

SELECT * FROM mov
GROUP BY date
ORDER BY date;
我最基本的问题(我刚开始学习MySQL!)是: 现在如何将“ma7d”和“ma30d”值插入原始表格“mass”中的相应日期

我的目标是定期运行此脚本,在向其添加新数据时更新“mass”


非常感谢

尝试使用sql游标。示例
为从mov选择*声明当前光标
。然后使用循环将m7d和ma30d提取到变量中。然后将质量作为值插入表中谢谢你,Randyka。我试试看。