2014-09-02 101 views
0

请参考这里显示的细节:如何获得SQL Server中的两个值之间平均

ID Value 
--------- 
1 120 
1 150 

查询:

Select avg(value) 
from table 
group by Id 

电流输出= 130

预计产量=

120 + 150/2 = 135 

请让我知道您的意见。

+4

无法重现 - 我**得到** 135 - 如预期的那样..... – 2014-09-02 12:05:28

+1

有什么你在省略?在这个简单的场景复制中,我得到了135个预期值:'SELECT AVG(value)FROM(VALUES(1,120),(1,150))t(id,value)GROUP BY Id' – GarethD 2014-09-02 12:06:45

+0

为什么只有150/2而不是120/2?它背后的逻辑是什么? – 2014-09-02 12:11:31

回答

1

SQL Server完成整数运算,即使是整数。但是,它不是圆的整数到最近的10也许你的真实数据,下面会做你想要什么:

Select avg(value * 1.0) 
from table 
group by Id ; 

它的值变化的东西用一个小数点,所以一般不整数平均值。

相关问题