【问题标题】:Over Partition By not working for Weighted AVG CalcOver Partition 不适用于加权 AVG Calc
【发布时间】:2012-11-27 19:06:35
【问题描述】:

我不知道我是怎么错过这个的,但我确定是从深夜开始的! 任何帮助表示赞赏 假设我们正在使用 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 的问题?

【问题讨论】:

    标签: tsql average weighted


    【解决方案1】:

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

               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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 2013-12-09
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多