SQL Server AVG功能奇怪

时间:2009-09-07 18:09:21

标签: sql sql-server tsql excel weighted-average

我在SQL Server AVG计算中看到了一些奇怪的行为。

在手动计算时,您获得49.277588
但SQL Server报告的平均值为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

1 个答案:

答案 0 :(得分:4)

看起来你在Excel中平均做了一个平均值,这是一个糟糕的数学。

http://wiki.answers.com/Q/Is_an_average_of_averages_accurate