将每组的总和除以总和

rh2*_*h2o 3 mysql sql aggregate-functions mariadb

我想分别得到A组和B组的总和,然后将每组除以总和。

我尝试使用这个:

select name, sum(qt)
from ntbl
group by name 
Run Code Online (Sandbox Code Playgroud)
订单号 姓名 qt
1 A 12
2 A 20
3 33
4 45

结果应该是:

姓名 qt DV
A 32 0.29
78 0.70

Sal*_*n A 5

您可以将聚合函数和窗口函数组合在一起:

select name
     , sum(qt) as sum_qt
     , sum(qt) / sum(sum(qt)) over () * 100 as pct_qt
from t
group by name
Run Code Online (Sandbox Code Playgroud)