对所有先前观察值的列值求和

Sum a column value of all the previous observations

我有一个 table,其中包含 client_id、order_number 和收入。这个想法是将收入加起来直到每个订单号。

因此,例如,客户在他的第一个订单中获得 3 美元的收入,在第二个订单中获得 2 美元的收入。对于他的第一笔贷款,它应该 return 3 美元作为收入,但第二笔贷款应该是 5 美元。是个比较简单的问题,但是我还没有找到解决方法。

根据描述,您想要一个 window sum(revenue) 函数,按 client_id 划分并按 client_id 和 order_number

排序
select client_id, order_number,revenue,
sum(revenue) over (partition by client_id ORDER BY client_id,order_number) as sum
       from your_table
       order by client_id

示例数据:

insert into your_table values (1,10,2);
insert into your_table values (1,20,3);
insert into your_table values (2,21,2);
insert into your_table values (2,22,10);
insert into your_table values (3,40,2);

结果:

CLIENT_ID | ORDER_NUMBER | REVENUE | SUM
1           10             2         2
1           20             3         5
2           21             2         2
2           22             10        12
3           40             2         2