SQL-агрегат с несколькими строками - PullRequest
1 голос
/ 09 сентября 2010

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

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

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

Ответы [ 2 ]

3 голосов
/ 09 сентября 2010
SELECT AVG(val) 
FROM floatTable 
WHERE tagindex IN (828, 856, 883, 910) 
    AND DateAndTime > DATEADD(HH, -1, GETDATE()) 
    AND DateAndTime < DATEADD(HH, -2, GETDATE()) 
0 голосов
/ 09 сентября 2010
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
...