我有一个看起来像这样的数据表。
datestamp timestamp vix
2015-05-13 16:30:00 18.0
2015-05-14 16:30:00 19.2
2015-05-15 16:30:00 18.5
2015-05-18 16:30:00 17.5
2015-05-19 16:30:00 17.0
我想获得最近3天的列vix的平均值(avg())。我知道如何使用像这样的查询来获取最后3行
select vix from my_table order by date desc limit 3
如何进一步计算过去3天的平均值?任何帮助,将不胜感激。
答案 0 :(得分:5)
使用派生表:
select avg(dt.vix)
from
(select vix from my_table order by date desc limit 3) dt
答案 1 :(得分:1)
这取决于您是否需要最近3天或最后3条记录..
严格过去三天:
SELECT AVG(t.vix)
FROM table t
WHERE t.datestamp > CURDATE() - INTERVAL 3 DAY
是优选的,否则请转到Jarlh的回答