2010-10-12 36 views
0

我想查找最近x個結果的平均值。是否有可能使用sql server的有限數量的結果使用聚合函數?如何查詢sqlserver中最新數據的平均值

這裏是我曾嘗試和錯誤,我得到:

select avg(top(100) convert(float, AnalysisData)) 
from tab 
order by DatePerformed desc 

消息156,15級,狀態1,行 附近的關鍵字 '頂' 不正確的語法。

select AVG(data) 
from (
select top(100) convert(float, AnalysisData) As data 
from tab 
order by DatePerformed desc 
); 

消息102,級別15,狀態1,行7 附近有語法錯誤 ')'。

這是SQL Server 2008中

回答

2

在你的第二個例子,你需要一個別名的子查詢:

select AVG(data) 
from (
    select top 100 convert(float, AnalysisData) As data 
    from tab 
    order by DatePerformed desc 
) Top100Records; 

你可能並不需要圍繞100括號要麼。