2009-09-07 158 views
0

我看到SQL Server的一些奇怪的行爲AVG計算。SQL Server AVG功能奇怪

手工計算,你49.277588
但SQL服務器報告所述平均值50.9914
,如下圖所示。

問題:有人可以解釋這種差異,爲什麼發生這種情況?

您可以嘗試上的AdventureWorks2008數據庫查詢與下面的查詢

select C.ProductCategoryID, P.ProductSubcategoryID, 
     AVG(P.ListPrice) as 'Average', 
     MIN(P.ListPrice) as 'Miniumum', 
     MAX(P.ListPrice) as 'Maximum' 
from Production.Product P 
     join Production.ProductSubcategory S 
      on S.ProductSubcategoryID = P.ProductSubcategoryID 
     join Production.ProductCategory C 
      on C.ProductCategoryID = S.ProductCategoryID 
where P.ListPrice <> 0 
group by C.ProductCategoryID, P.ProductSubcategoryID 
with rollup 

alt text

[更新]答
這裏是加權平均計算的Excel中 alt text

結果

回答