私はこれを持っていると言います:
select money from somewhere
私は今、accumulatedMoneyという別の列が必要です。これは、=前の行のaccumulatedMoney +現在の行のお金になります例:
m = 2, am = 2
m = 3, am = 5
m = 3, am = 8
...
これを達成するために何ができますか?ありがとう
私はこれを持っていると言います:
select money from somewhere
私は今、accumulatedMoneyという別の列が必要です。これは、=前の行のaccumulatedMoney +現在の行のお金になります例:
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 はこれをサポートしています。)