我有一个表,我想计算一列的平均值,但只计算最后10行的平均值。
SELECT AVG(columnName) as avg FROM tableName
我不能直接应用top,因为此查询只返回一行。我需要一种方法来获取最新的10行并对其进行平均。
答案 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;