首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kdb -将两个时间序列合并为一个

kdb -将两个时间序列合并为一个
EN

Stack Overflow用户
提问于 2020-12-22 19:57:49
回答 1查看 100关注 0票数 0

我在一个表中有如下模式的数据: date、time、sym、book、pnl

这是一个时间序列。sym/book作为列定义时间序列。

我有一个特殊的用例,我需要想出另一个将两本书结合在一起的时间序列。

如果这不是一个时间序列,这将是相当简单的,只需通过book/sym求和,过滤我想要合并的书籍,然后再次与新的书名求和(常量)。

但我不确定如何创建一个具有一个书值的时间序列(这是在任何给定时间的两个书值的组合,例如,两个书组合的不同时间)。重要的是,时间序列不是均匀的/均匀的,时间对于bookId/sym组合来说是“随机的”。

代码语言:javascript
复制
t: ([] date: 4#.z.D; time: (07:00; 07:00; 07:01; 07:02); sym: `x`x`x`x; book: `book1`book2`book2`book1; v: (100; 0; 200; 200))

c: ([] date: 3#.z.D; time: (07:00; 07:01; 07:02); sym: `x`x`x; book: `newbook; v: (100; 300; 400))
EN

回答 1

Stack Overflow用户

发布于 2020-12-22 22:34:13

根据您的预期输出,假设您想知道多本书在任何给定时间的总持有量,我认为这应该符合您的目的。

代码语言:javascript
复制
q)select date,time,sym,book:`newbook,v:sum each vb from update vb:@[;;:;]\[()!();book;v]from t
date       time  sym book    v
--------------------------------
2020.12.22 07:00 x   newbook 100
2020.12.22 07:00 x   newbook 100
2020.12.22 07:01 x   newbook 300
2020.12.22 07:02 x   newbook 400

这个解决方案是使用扫描(\)为每本书创建一个最新值的字典,然后对它们求和。可能需要添加distinct,以防有任何行没有发生任何更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65408308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档