我想获得每个人的 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/

10-12 16:58