Функция усреднения T-SQL - считать 52 строки данных - PullRequest
1 голос
/ 20 сентября 2010

Мне нужна помощь в написании оператора select, который будет в среднем выполнять самые последние 52 строки данных.

Если количество строк меньше 52, оно будет вычислять только среднее количество строк.

Я знаю, что функция avg в SQL пропустит нуль ... но я дошел до этого.

SELECT AVG(E.Interest)
from InterestRates E
Where Interest in (select COUNT(Interest) <=52 from InterestRates)

я хотел, чтобы каждая строка данных возвращалась и вычисляла средние 52 строки спасибо

Ответы [ 2 ]

7 голосов
/ 20 сентября 2010

Попробуйте это:

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.

0 голосов
/ 20 сентября 2010

ВЫБРАТЬ AVG (E.Interest) ОТ
Процентные ставки E ГДЕ ROWNUMBER () <= 52 ПОРЯДОК ДЕЙСТВУЮЩЕГО DESC; </p>

...