2012-11-19 36 views
0

在我的表我想兩列如何使用PIVOT從兩列獲得平均值?

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

你怎麼想最終的結果是顯示? – Taryn

+0

我希望尺寸值應該是列和平均價格和數量。因爲可以在我的表中提供不同的價格和數量相同的尺寸,所以我想要得到每個尺寸的平均價格。 – Indra

+0

請編輯您的原始文章並顯示您希望最終結果的外觀。 – Taryn

回答

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; 
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 
+0

如果我選擇10+列,我需要分組10 +列。這就是我想問的問題在PIVOT中的多個列的平均值 – Indra

+0

顯然,我錯過了您的要求中的某些東西,您是否可以嘗試澄清您需要的內容? – Taryn