【SQL】怎么在对已分组数据进行总合计并在列中展示

问题:希望能在分组合计数据后再加一列总计
数据源:

img

分组后数据
等级 数量
A 524
B 3101
C 12546
D 21218

希望呈现效果
等级 数量 总计 总占比
A 524 37389 1.40%
B 3101 37389
C 12546 37389
D 21218 37389

不知道要怎么把‘总计’放到列里,用union就只能放到行的位置,求指导,谢谢~~

提供一个思路,先获得 下面的结果集
等级 总计 总占比
A 37389 1.40%
B 37389 1.40%
C 37389 1.40%
D 37389 1.40%
在left join on a.等级 = b.等级
分组后数据
等级 数量
A 524
B 3101
C 12546
D 21218
以下是MySQL的写法,即:

select a.等级,a.数量,b.总计,b.百分比
from (分组后的数据) a 
left join (总计、百分比等结果集) b on a.等级 = b.等级

这典型的要用开窗函数呀

select 
  s 等级,
  count(id) 总计,
  count(id)/sum(count(id)) over() 占比
from test_table  group by s
select
字段1 as 别名1,
字段n as 别名n
INTO #Temptable
from table with (nolock)
left join ......
where  .....
AND
select *
from #Temptable
union all
select  字段1 as 别名1,
sum([数量]) ,
sum(总计),
sum(总占比) 
from #Temptabl
GROUP BY [数量],[总计],[总占比]