我正在寻找计算可变日期的移动平均值。
我的数据库是结构化的:
id int
date date
price decimal
例如,我想知道过去 5 天内过去 19 天的平均价格是否高于过去 40 天的平均价格。这些时间段中的每一个都是可变的。
我遇到的问题是为子查询选择特定数量的行。
Select * from table
order by date
LIMIT 0 , 19
知道每天只有 1 个输入,我可以使用上面的作为子查询吗?之后问题似乎微不足道....
我正在寻找计算可变日期的移动平均值。
我的数据库是结构化的:
id int
date date
price decimal
例如,我想知道过去 5 天内过去 19 天的平均价格是否高于过去 40 天的平均价格。这些时间段中的每一个都是可变的。
我遇到的问题是为子查询选择特定数量的行。
Select * from table
order by date
LIMIT 0 , 19
知道每天只有 1 个输入,我可以使用上面的作为子查询吗?之后问题似乎微不足道....
如果您每天只有一个输入,您不需要 id,那么 date 可以是您的主要 id 吗?我错过了什么吗?然后使用选择总和
SELECT SUM(price) AS totalPrice FROM table Order by date desc Limit (most recent date),(furthest back date)
totalPrice/(total days)
我可能不明白你的问题
是的,您可以将其用作这样的子查询:
SELECT
AVG(price)
FROM
(SELECT * FROM t ORDER BY date DESC LIMIT 10) AS t1;
这将计算最近 10 行的平均价格。
见小提琴。