我可能需要一些关于 SQL 语句的帮助。所以我有一个看起来像这样的表格“cont”:
cont_id name weight
----------- ---------- -----------
1 1 10
2 1 20
3 2 40
4 2 15
5 2 20
6 3 15
7 3 40
8 4 60
9 5 10
10 6 5
然后我总结了权重列并按名称对其进行分组:
name wsum
---------- -----------
2 75
4 60
3 55
1 30
5 10
6 5
结果应该有一个累积列,应该如下所示:
name wsum acc_wsum
---------- ----------- ------------
2 75 75
4 60 135
3 55 190
1 30 220
5 10 230
6 5 235
但我没有设法让最后一条语句起作用..
编辑:这个声明做到了(感谢戈登)
select t.*,
(select sum(wsum) from (select name, SUM(weight) wsum
from cont
group by name)
t2 where t2.wsum > t.wsum or (t2.wsum = t.wsum and t2.name <= t.name)) as acc_wsum
from (select name, SUM(weight) wsum
from cont
group by name) t
order by wsum desc