T-SQL平均功能 - 计算52行数据

Win*_*-10 1 t-sql average sql-server-2008

我需要帮助编写select语句,它将平均最近52行数据.

如果少于52行,它将只执行有多少行的平均值.

我知道SQL中的avg函数会跳过null ...但我到目前为止.

SELECT AVG(E.Interest)
from InterestRates E
Where Interest in (select COUNT(Interest) <=52 from InterestRates)
Run Code Online (Sandbox Code Playgroud)

我希望每行数据返回并计算平均52行谢谢

Lit*_*les 7

试试这个:

SELECT AVG(Interest) AS AvgInterest
FROM (
    SELECT TOP 52 E.Interest
    FROM InterestRates E
    ORDER BY DateEntered DESC
) Top52Interests
Run Code Online (Sandbox Code Playgroud)

编辑

根据评论,您可以通过身份订购:

SELECT AVG(Interest) AS AvgInterest
FROM (
    SELECT TOP 52 E.Interest
    FROM InterestRates E
    ORDER BY YourIdentityField DESC
) Top52Interests
Run Code Online (Sandbox Code Playgroud)

好的是这个查询也适用于SQL 2000.