Mysql 时间序列的移动平均数
我试图计算表中包含的时间序列的移动平均值(7天和30天),其中包含字段:“日期”、“时间”和“磅” 虽然我怀疑这不是理想的MySQL,但下面的代码可以生成一个适当的临时表(“mov”),其中包含每个日期的正确值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 #
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。我试试看。