0

次の形式のデータがあります。

TYPE AMOUNT
Book   £2
Pen    £1
Book   £3

これを加重平均として出力しようとしています:

TYPE Weighted Average
Book 0.833333333
Pen  0.166666667

これまでのところ、私は持っています:

Select TYPE, AMOUNT/SUM(AMOUNT) 
FROM MyTable
Group by TYPE
4

2 に答える 2

4

これにより、必要な結果が得られるはずです。

select type
    , cast(sum(amount) as decimal(10,5))/(select sum(amount) from t)
from t
group by type

デモの Sql Fiddle を参照してください

于 2012-07-06T11:48:47.333 に答える
0

これはうまくいく

DECLARE @Table1 TABLE (TYPE  VARCHAR(10),AMOUNT FLOAT)
INSERT INTO @Table1 SELECT  'Book',2 UNION ALL SELECT 'Pen',1 UNION ALL  SELECT 'Book',3

DECLARE @Total FLOAT
SELECT @Total=SUM(AMOUNT) FROM @Table1

SELECT TYPE,SUM(AMOUNT/@Total) FROM @Table1 GROUP BY TYPE
于 2012-07-06T12:02:42.967 に答える