gpt4 book ai didi

kdb - KDB/Q 中行之间的差异

转载 作者:行者123 更新时间:2023-12-05 08:58:48 29 4
gpt4 key购买 nike

我是 KDB/Q 的新手,对获取两行(不一定相邻)之间的差异有疑问。

我只有一张表,如下所示:

q)tickers:`ibm`bac`dis`gs`ibm`gs`dis`bac
q)pxs:100 50 30 250 110 240 45 48
q)dates:2013.05.01 2013.01.05 2013.02.03 2013.02.11 2013.06.17 2013.06.21 2013.04.24 2013.01.06

q)trades:([tickers;dates];pxs)
q)trades
tickers dates | pxs
------------------| ---
ibm 2013.05.01| 100
bac 2013.01.05| 50
dis 2013.02.03| 30
gs 2013.02.11| 250
ibm 2013.06.17| 110
gs 2013.06.21| 240
dis 2013.04.24| 45
bac 2013.01.06| 48

我希望能够在表中有一个存储当前价格和之前价格之间差异的另一列,或者另一个结构相似的结构。结果需要回答的关键问题是“与上一次记录价格相比,库存变化了多少?”

到目前为止,我已经尝试了一些类似的方法:

select tickers, dates, pxs - pxs(dates bin (exec dates from trades where tickers = trades.tickers)) from trades

这(根本)不起作用。绝对是由于尝试执行类似 SQL 的查询并具有面向行的思维方式。

请在下面找到所寻求答案的示例:

q)trades: do magic with trades
q)trades
tickers dates | pxs | delta
------------------| --- | -----
ibm 2013.05.01| 100 | 0
bac 2013.01.05| 50 | 0
dis 2013.02.03| 30 | 0
gs 2013.02.11| 250 | 0
ibm 2013.06.17| 110 | 10
gs 2013.06.21| 240 | -10
dis 2013.04.24| 45 | 15
bac 2013.01.06| 48 | -2

感谢您的帮助,丹

最佳答案

q)update delta:{0,1_deltas x}pxs by tickers from trades
tickers dates | pxs delta
------------------| ---------
ibm 2013.05.01| 100 0
bac 2013.01.05| 50 0
dis 2013.02.03| 30 0
gs 2013.02.11| 250 0
ibm 2013.06.17| 110 10
gs 2013.06.21| 240 -10
dis 2013.04.24| 45 15
bac 2013.01.06| 48 -2

关于kdb - KDB/Q 中行之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031306/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com