按符号累计每个时间点的所有值

Chr*_*ris 2 kdb

我有这张桌子:

execs:([]time:til 12;sym:`a`b`c`a`c`c`c`b`b`a`b`c;leavesQty:(1000;900;1300;800;1200;900;600;800;400;300;200;100))
Run Code Online (Sandbox Code Playgroud)

我有不同的syms,并且每次都有一个leavesQty.现在我想以这种方式扩展表格,在每一行我都得到sym目前所有leavesQty条目的总和.

所以我必须为这个例子提出这些值:

execs:([]time:til 12;sym:`a`b`c`a`c`c`c`b`b`a`b`c;leavesQty:(1000;900;1300;800;1200;900;600;800;400;300;200;100);accLeavesQty:(1000;1900;3200;3000;2900;2600;2300;2200;1800;1300;1100;600))
Run Code Online (Sandbox Code Playgroud)

小智 5

如果使用fby,则使用单个更新语句添加此列:

q)update accLeavesQty:sums (deltas;leavesQty) fby sym from execs
time sym leavesQty accLeavesQty
-------------------------------
0    a   1000      1000
1    b   900       1900
2    c   1300      3200
3    a   800       3000
4    c   1200      2900
5    c   900       2600
6    c   600       2300
7    b   800       2200
8    b   400       1800
9    a   300       1300
10   b   200       1100
11   c   100       600
Run Code Online (Sandbox Code Playgroud)