说我有这个:
select money from somewhere
我现在想要另一列,称为累积金钱,它将是 = 上一行的累积金钱 + 当前行的金钱 例如:
m = 2, am = 2
m = 3, am = 5
m = 3, am = 8
...
我能做些什么来实现这一目标?谢谢
说我有这个:
select money from somewhere
我现在想要另一列,称为累积金钱,它将是 = 上一行的累积金钱 + 当前行的金钱 例如:
m = 2, am = 2
m = 3, am = 5
m = 3, am = 8
...
我能做些什么来实现这一目标?谢谢
在任何数据库中,您都可以使用相关子查询来执行此操作:
select t.am, t.m,
(select sum(tprev.m) from t tprev where tprev.am <= t.am) as cumsum
from t
在任何数据库中,您还可以通过以下方式作为联接和分组来执行此操作:
select t.am, t.m, sum(tprev.m) as cumsum
from t join
t tprev
on tprev.am <= t.am
group by t.am, t.m
在支持累积和的数据库中,您可以这样做:
select t.am, t.m,
sum(t.m) over (order by t.am) as cumsum
from t
(SQL Server 2012 和 Oracle 支持这一点。)