2010-09-09 3 views
1

У меня есть следующий запросSQL совокупности с несколькими строками

SELECT tagindex, AVG(val) from floatTable 
WHERE tagindex IN(828,856,883,910) 
    AND DateAndTime > DATEADD(HH,-1,GETDATE()) 
    AND DateAndTime < DATEADD(HH,-2,GETDATE()) 
group by tagindex 

возвращает следующее:

828 1 
856 1 
883 1 
910 1 

Как я могу вернуть один результат, где это объединенное среднее значение всех строк?

+1

Когда вы говорите, «комбинированный среднее значение всех строк», вы имеете в виду строки из floatTable или строки в наборе результатов вы показываете? @ Ответ RedFilter дает вам первый, @ ответ Джереми последним. Я должен добавить, что последнее кажется статистически весьма подозрительным - усреднение средних значений редко бывает правильным. –

+0

RedFilter предоставил то, что я искал. Думаю, мне нужно вернуться к основам :) – user438199

ответ

0
Select Avg(AverageValue) 
From 
(
    SELECT tagindex, AVG(val) as AverageValue from floatTable 
    WHERE tagindex IN(828,856,883,910) 
    AND DateAndTime > DATEADD(HH,-1,GETDATE()) AND DateAndTime < DATEADD(HH,-2,GETDATE()) 
    group by tagindex 
) AverageValues 
3
SELECT AVG(val) 
FROM floatTable 
WHERE tagindex IN (828, 856, 883, 910) 
    AND DateAndTime > DATEADD(HH, -1, GETDATE()) 
    AND DateAndTime < DATEADD(HH, -2, GETDATE()) 
Смежные вопросы