我希望weight
占每个人总weight
的百分比。
这是我的数据:
TableA
Name | Size | Weight
------------------------------------
Jamie | 0.25 | 48
Jamie | 0.50 | 48
Taylor | 0.25 | 55
Taylor | 0.30 | 54
Taylor | 0.45 | 48
Taylor | 0.45 | 60
这是我想要的输出:
Name | Size | Percentage | Weight
---------------------------------------------------------------
Jamie | 0.25 | 50% | 48
Jamie | 0.50 | 50% | 48
Taylor | 0.25 | 35.03% | 55
Taylor | 0.30 | 34.39% | 54
Taylor | 0.45 | 49.76% | 108
例如:
Jamie的总重量是96(48 + 48),所以我必须计算他的体重值,每行96个百分比。
对于泰勒来说,大小是0.45两次,但重量不同,所以在输出中它应该加权(48 + 60)然后(108/217)* 100 = 49.76百分比
答案 0 :(得分:1)
我建议您首先要总结源记录,然后计算百分比。因此,使用派生表我建议您按名称/大小对权重求和,并在外部查询中完成。
SELECT
name
, size
, 100 * Weight / SUM(Weight) OVER (PARTITION BY Name) AS Per
FROM (
SELECT
Name
, Size
, SUM(weight) AS weight
FROM worker
GROUP BY
name
, size
) AS w