【问题标题】:SQL Server AVG function odditySQL Server AVG 函数异常
【发布时间】:2009-09-07 18:09:20
【问题描述】:

我在 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

[更新]答案
这是Excel中加权平均计算的结果

【问题讨论】:

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


    【解决方案1】:

    看起来您在 Excel 中的平均值是平均值,这是一个糟糕的数学运算。

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

    【讨论】:

    • @David:你是绝对正确的。在进行加权平均计算时,结果是一样的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2021-12-13
    • 2018-10-05
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多