0

私のテーブルでは、2 つの列の平均値を取得したい

 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 に答える