Как запросить среднее значение самых последних данных в sqlserver - PullRequest
0 голосов
/ 12 октября 2010

Я хочу найти среднее из самых последних результатов x. Можно ли использовать агрегатную функцию на ограниченном количестве результатов с сервером SQL?

Вот что я пробовал и какие ошибки я получаю:

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

Сообщение 156, Уровень 15, Состояние 1, Строка 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

1 Ответ

2 голосов
/ 12 октября 2010

Во втором примере вам понадобится псевдоним для подзапроса:

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

Возможно, вам также не нужны круглые скобки вокруг 100.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...