我想找到最近x个结果的平均值。是否可以使用sql server对有限数量的结果使用聚合函数?
这是我尝试过的以及我得到的错误:
select avg(top(100) convert(float, AnalysisData))
from tab
order by DatePerformed desc
第15行,第1行,第1行,第1行 关键字附近的语法不正确 '顶部'。
select AVG(data)
from (
select top(100) convert(float, AnalysisData) As data
from tab
order by DatePerformed desc
);
Msg 102,Level 15,State 1,Line 7 ')'附近的语法不正确。
这是sql server 2008
答案 0 :(得分:2)
在第二个示例中,您需要子查询的别名:
select AVG(data)
from (
select top 100 convert(float, AnalysisData) As data
from tab
order by DatePerformed desc
) Top100Records;
您可能不需要100
周围的括号。