【发布时间】:2015-02-23 20:21:09
【问题描述】:
我正在做一些关于 NORTHWND db 的基本练习。我想执行以下代码:
SELECT
sum(SaleAmount) AS SaleAmount
, CompanyName
FROM [Sales Totals by Amount]
where [SaleAmount] >
(
Select
avg(SaleAmount) as SaleAmount
from [Sales Totals by Amount]
)
group by CompanyName
平均值等于 4409,4948。当我试图获得大于平均值的值时,结果是正确的。当我试图获得低于平均值的值时,它会返回低于和高于平均值的值。 如果您指出我的错误在哪里,我将不胜感激。
【问题讨论】:
-
您知道
WHERE SaleAmount >使用的是基列,而不是SUM(SaleAmount),对吗?您可以通过为表达式使用更好的别名来避免这种歧义,例如TotalSaleAmount。 -
它正在返回
sum(SaleAmount)。该数量取决于应用where过滤器后数据中的行数。 -
您是要获取
SaleAmount的值的总和,其中各个值 大于平均值,或者总和大于平均值?跨度>
标签: sql sql-server average