2014-09-02 78 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 ; 

它的值變化的東西用一個小數點,所以一般不整數平均值。

相關問題