給与テーブルが与えられ、従業員の累積給与を出力する単一のクエリを作成する必要があります。例えば:
Emp Sal
A 10
B 15
C 20
D 5
OutPut:
Emp Sal Cum_Sal
A 10 10
B 15 25
C 20 45
D 5 50
一部の RDBMS (PostgreSQL、SQL Server 2012、Oracle など) では、ウィンドウ関数を使用できます。
select
Emp, Sal, sum(Sal) over(order by Emp) as Cum_Sal
from employees
それが不可能な場合は、自己結合を使用できます
select
e1.Emp, e1.Sal, sum(e2.Sal) as Cum_Sal
from employees e1
inner join employees e2 on e2.Emp <= e1.Emp
group by e1.Emp, e1.Sal
どちらの場合も、ローリング合計の順序を定義する必要があることに注意してください (上記のクエリでは、Emp
列ごとに並べられています)。
select e.name,e.joining,sum(e_1.increment) from employee e inner join employee e_1 on e.name=e_1.name where e.joining>=e_1.joining group by e.name,e.joining
表は以下のようなもので、同じアプローチを使用できます