在行子集上应用聚合函数

时间:2013-01-05 20:35:10

标签: sql sql-server aggregate-functions average

我有一个表,我想计算一列的平均值,但只计算最后10行的平均值。

SELECT AVG(columnName) as avg FROM tableName

我不能直接应用top,因为此查询只返回一行。我需要一种方法来获取最新的10行并对其进行平均。

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT AVG(columnName) FROM
(SELECT TOP 10 columnName FROM tableName ORDER BY ColumnWhichHoldsOrder DESC) A

答案 1 :(得分:3)

select avg(columnName)
from (
   select columnName, 
          row_number() over (order by some column desc) as rn
   from tableName
) t
where rn <= 10;