如何根据日期获得X最近行的平均价格?

时间:2013-04-27 00:00:31

标签: mysql sql sql-order-by average

我希望计算可变日期的移动平均线。

我的数据库是结构化的:

id int    
date date
price decimal

例如,我想知道19天后的平均价格是否会超过过去5天内40天的平均价格。每个时间段都是可变的。

我要坚持的是为子查询选择特定数量的行。

Select * from table
order by date
LIMIT 0 , 19

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

2 个答案:

答案 0 :(得分:0)

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

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

totalPrice/(total days) 

我可能听不懂你的问题

答案 1 :(得分:0)

是的,你可以使用它作为这样的子查询:

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

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

see fiddle