add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table purchases(id int, date date, purchase int);

insert into purchases values(1, '2020-01', 200);

insert into purchases values(2, '2020-12', 100);

insert into purchases values(2, '2020-03', 150);

insert into purchases values(3, '2020-03', 200);

insert into purchases values(1, '2020-07', 120);

insert into purchases values(1, '2020-08', 300);

insert into purchases values(3, '2020-05', 250);
with cte as
(
select id,date,purchase,
min(date)over(partition by id) FirstPurchaseMonth from purchases
)
,cte2 as
(
select substr(date,6,2)-substr(firstpurchasemonth,6,2) Purchasemonth, max(FirstPurchaseMonth)firstpurchasemonth,
purchase,sum(purchase)total from cte
group by firstpurchasemonth,substr(date,6,2)-substr(firstpurchasemonth,6,2)
)
select purchasemonth,firstpurchasemonth,sum(total)over(partition by firstpurchasemonth order by purchasemonth)total
from cte2
Purchasemonth firstpurchasemonth total
0 2020-01 200
6 2020-01 320
7 2020-01 620
0 2020-03 350
2 2020-03 600
9 2020-03 700