0

我正在寻找计算可变日期的移动平均值。

我的数据库是结构化的:

id int    
date date
price decimal

例如,我想知道过去 5 天内过去 19 天的平均价格是否高于过去 40 天的平均价格。这些时间段中的每一个都是可变的。

我遇到的问题是为子查询选择特定数量的行。

Select * from table
order by date
LIMIT 0 , 19

知道每天只有 1 个输入,我可以使用上面的作为子查询吗?之后问题似乎微不足道....

4

2 回答 2

0

如果您每天只有一个输入,您不需要 id,那么 date 可以是您的主要 id 吗?我错过了什么吗?然后使用选择总和

SELECT SUM(price) AS totalPrice FROM table Order by date desc Limit (most recent date),(furthest back date) 

totalPrice/(total days) 

我可能不明白你的问题

于 2013-04-27T00:23:37.437 回答
0

是的,您可以将其用作这样的子查询:

SELECT 
    AVG(price) 
FROM 
    (SELECT * FROM t ORDER BY date DESC LIMIT 10) AS t1;

这将计算最近 10 行的平均价格。

见小提琴

于 2013-04-27T00:31:41.950 回答