SQL:从最后N(两个)条目中获取avg结果

时间:2014-10-03 13:21:34

标签: mysql sql

我发现其他人也有同样的问题。然而,没有一个解释对我有用,说实话,我不确定我理解为什么。那么让我告诉你我的情况:

有一个名为enigma的数据库 一个包含三个字段的表:number(a.i。),second(int),fourth(int)
此表有3个条目:1 - 100 - 200/2 - 200 -200 / 3 - 300 - 400
我想要实现的是从最后两个条目获得avarage second(int) 我想要的结果是:250
我使用的代码是:

select AVG(second)
from (select second
  from enigma
   where (select count(*) from enigma as e
           where e.second = enigma.second) <=2 ) as t


但结果总是200(所有条目的平均值)。
有人可以向我解释原因,并可能提出解决方案吗?
亲切的问候。

1 个答案:

答案 0 :(得分:3)

试试这个:

select avg(second)
  from (select second
          from enigma
         order by number desc 
         limit 2
       ) t

SQLFiddle