英文:
How can I get accumulating weighted-average prices in KDB+ by symbol from a table, taking into account all previous records?
问题
我想从一个表中获取按sym累积加权平均价格,这意味着不仅考虑前一个记录,还要考虑所有之前的记录。
期望输出:
q)show t:([]sym:`a`a`b`b;size:(2;6;7;5);price:(2;10;4;9);avgPrice:(2;8;4;6.083))
sym size price avgPrice
-----------------------
a 2 2 2
a 6 10 8
a 2 3 7
b 7 4 4
b 5 9 6.083
所以对于第二行:(2*2+10*6)/(2+6)=8
所以对于第三行:(2*2+10*6+2*3)/(2+6+2)=7
所以对于第四行:(7*4+5*9)/(7+5)=6.083
任何帮助都将不胜感激。提前感谢。
英文:
I would like get accumulating weighted-average prices by sym from a table, meaning taking account of not just the previous record but all previous records.
Input
q)show t:([]sym:`a`a`a`b`b;size:(2;6;2;7;5);price:(2;10;3;4;9))
sym size price
--------------
a 2 2
a 6 10
a 2 3
b 7 4
b 5 9
Desired Output:
q)show t:([]sym:`a`a`b`b;size:(2;6;7;5);price:(2;10;4;9);avgPrice:(2;8;4;6.083))
sym size price avgPrice
-----------------------
a 2 2 2
a 6 10 8
a 2 3 7
b 7 4 4
b 5 9 6.083
so for the second row: (2*2+10*6)/(2+6)=8
so for the third row: (2*2+10*6+2*3)/(2+6+2)=7
so for the forth row: (7*4+5*9)/(7+5)=6.083
Any help would be appreciated.
Thanks in advance.
答案1
得分: 4
更新平均价格:(价格总和*数量总和)%数量总和 通过符号从表t中
符号 数量 价格 平均价格
a 2 2 2
a 6 10 8
a 2 3 7
b 7 4 4
b 5 9 6.083333
英文:
update avgPrice:(sums price*size)%sums size by sym from t
sym size price avgPrice
-----------------------
a 2 2 2
a 6 10 8
a 2 3 7
b 7 4 4
b 5 9 6.083333
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论