0

我不知道我是怎么想念这个的,但我确定它是从深夜开始的!任何帮助表示感谢,假设我们正在使用 NorthWind 计算加权 AVG

USE NORTHWIND
Select  OD.UnitPrice,OD.Quantity,
sum(OD.UnitPrice*OD.Quantity)/sum(OD.Quantity) OVER (PARTITION BY
OD.UnitPrice, OD.Quantity) as[ W-AVERAGE] 
 From [Order Details] OD

关于为什么 SQL 一直说 Column 'Order Details.UnitPrice' 在选择列表中无效,我缺少什么,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。?我认为使用 Partition By 解决了必须有一个 group by?

4

1 回答 1

4

已解决:您必须在每个聚合中使用分区,错误消息有点误导,但请记住,每当您使用分区时,它必须在任何聚合函数的每个实例中使用!

           Select OD.UnitPrice,OD.Quantity,
           sum(OD.UnitPrice*OD.Quantity) Over (PARTITION BY OD.UnitPrice,  
           OD.Quantity)/sum(OD.Quantity) OVER (Partition By OD.Quantity) as[W-AVERAGE] 
           From [Order Details] OD
于 2012-11-27T20:12:48.203 回答