如何在sql中计算组的百分比

pod7payv  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(545)

我有一张像这样的table

Class     ID        Value
  A        1         300
  A        2         200
  A        3         500
  B        1         300
  B        2         300
  C        1        1000

有没有一种方法可以使用sql来计算每个id在类中所占的百分比。
例如,a类的百分比为id 1的30%,id 2的20%,id 3的50%,依此类推:

Class     ID        Value    Percentage
  A        1         300         30%
  A        2         200         20%
  A        3         500         50%
  B        1         300         50%
  B        2         300         50%
  C        1        1000         100%
uidvcgyl

uidvcgyl1#

您可以使用窗口函数(如果您未公开的数据库支持这些函数):

select
    t.*,
    1.0 * value / sum(value) over(partition by class) ratio
from mytable t

这给你一个比率,也就是 0 以及 1 -我发现这比一个百分比更相关,但你可以乘以这个 100 如果你愿意的话。

相关问题