累積合計を計算する
- sum(カラム) over (partition by グループ1,グループ2 order by 累積順)
- partition byでグループ単位でカラムの合計を取得
- order byで指定するカラムの順番で合計を累積する
select CA1, CA2, sum(CLM1) over (partition by CA1, CA2 order by CLM2)
from (
select 1 CLM1, 1 CLM2, 'A' CA1, 'B' CA2 from dual;
union all
select 1 CLM1, 2 CLM2, 'A' CA1, 'B' CA2 from dual;
union all
select 1 CLM1, 3 CLM2, 'A' CA1, 'C' CA2 from dual;
union all
select 1 CLM1, 4 CLM2, 'A' CA1, 'C' CA2 from dual;
union all
select 1 CLM1, 5 CLM2, 'A' CA1, 'C' CA2 from dual;
)
- >
1: A B 1
2: A B 2
3: A C 1
4: A C 2
5: A C 3