在我的表中,我想获得两列的平均值
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(价格*数量)/ SUM(数量)为相同尺寸的平均值。
HeaderID Average-50 Average-60
1 9 4.7
价格是从上表中的每1个数量*,我希望使用PIVOTE获得尺寸'50'的平均价格。
答案 0 :(得分: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
答案 1 :(得分: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;