我需要帮助编写select语句,该语句将执行最近52行数据的平均值。
如果少于52行,它将只执行有多少行的平均值。
我知道SQL中的avg函数会跳过null ...但我到目前为止。
SELECT AVG(E.Interest)
from InterestRates E
Where Interest in (select COUNT(Interest) <=52 from InterestRates)
我希望每行数据返回并计算平均52行 感谢
答案 0 :(得分:7)
试试这个:
SELECT AVG(Interest) AS AvgInterest
FROM (
SELECT TOP 52 E.Interest
FROM InterestRates E
ORDER BY DateEntered DESC
) Top52Interests
修改强>
根据评论,您可以通过身份订购:
SELECT AVG(Interest) AS AvgInterest
FROM (
SELECT TOP 52 E.Interest
FROM InterestRates E
ORDER BY YourIdentityField DESC
) Top52Interests
好消息是这个查询也可以在SQL 2000中运行。
答案 1 :(得分:0)
选择
AVG(E.Interest)
从
利息率E.
哪里
ROWNUMBER()&lt; = 52
订购任何DESC;