2010-09-09 69 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的回答给了你前者,@杰里米的回答是后者。我应该补充一点,后者似乎在统计学上高度可疑 - 平均数平均值很难做到。 – 2010-09-09 17:26:32

+0

RedFilter提供了我一直在寻找的东西。我想我需要回到基础:) – user438199 2010-09-09 17:31:47

回答

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())