如何获得最后X值的平均值?
问题描述:
如果我有一个包含两列的表 - value和time_stamp - 如何使用SQL来获取最后X值的平均值?如何获得最后X值的平均值?
一个或几个声明,没关系。
也许类似于SELECT value FROM table ORDER BY time_stamp DESC LIMIT x
?然后在我的程序中,我可以得到每个值,总计它们并平均它们?就我的SQL n00b而言,这是我最好的猜测。
我知道SQL可以合计/平均水平,但我不确定如何在结合了将其应用到最新的X值的请求......
预先感谢任何帮助。
注给任何人seekign做到这一点:除了最后的X值接受的答案,我也通过google搜索,很容易的时间做,例如一分钟或一小时找到,通过使用类似的东西SELECT AVG(somefield) FROM sometable WHERE datefield BETWEEN '2003-08-10' AND '2003-08-26
答
您使用AVG()
聚合对子选择的结果进行初始化LIMIT
。请确保在内部查询上替换n
的正确LIMIT
值。
SELECT AVG(a.value) AS the_average
FROM (SELECT value FROM tbl ORDER BY time_stamp DESC LIMIT n) a;
+1(以及6分钟内答案,当我可以奖励它)。谢谢! – Mawg
errm,我只注意到最后的'a' - 它在做什么? – Mawg
@Mawg子查询派生表必须有一个别名。 'a'只是一个简单的别名来满足这个要求 - 如果没有它,查询就不会编译。 –