0

在我的表中,我想获得两列的平均值

 PackerID    HeaderID    Price  Quantity  Size  
  1            1           10      10      50  
  2            1           10      10      60  
  3            1           8.5     20      50
  4            2           7       15      60
  5            2           6       30      60

结果应该是 SUM(price*Quantity)/SUM(Quantity) 作为相同尺寸的平均值。

HeaderID     Average-50     Average-60 
  1                 9            4.7  

价格是上表中的每 1 个数量*,我想使用 PIVOTE 获得尺寸“50”的平均价格。

4

2 回答 2

1

如果你想要PIVOT结果,那么你可以使用类似这样的东西:

select *
from
(
  select headerid, size,
    sum(price*quantity)/sum(quantity*1.0) perUnit
  from yourtable
  group by headerid, size
) src
pivot
(
  avg(perUnit)
  for size in ([50], [60])
) piv
于 2012-11-19T11:44:20.637 回答
0
select sum(price * quantity) / sum(quantity)
  from tbl
 where size = 50;

-- result
9.0

适用于所有尺寸:

  select size, sum(price * quantity) / sum(quantity) avg_price_for_size
    from tbl
group by size
order by size;
于 2012-11-19T11:17:58.963 回答