我想获得每个人的 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
这是我想要的输出:
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 | 30.57% | 48
例如,Jamie 的总重量是 96 (48+48),所以我必须将他的重量值计算为每行 96 的百分比。
最佳答案
将表连接到计算权重总和的查询:
select t.name, size, 100.0 * weight / total, weight
from tableA t
join (select name, sum(weight) total
from tableA
group by name) s on s.name = t.name
这种语法适用于所有关系数据库(我知道)。
关于sql - 需要计算百分比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37742789/