gpt4 book ai didi

kdb dbmaint 用现有数据回填数据

转载 作者:行者123 更新时间:2023-12-05 09:15:47 33 4
gpt4 key购买 nike

我想使用 dbmaint 包为 hdb 中的所有日期添加一列,然后用同一表中另一个现有列的数据回填我添加的列到所有日期。

我刚刚为所有具有默认值的日期添加了一列。如何用另一列的数据回填该列?我不确定这是如何实现的。

最佳答案

我认为 dbmaint.q 中的 copycol 函数正是您要找的。请注意,此功能不适用于嵌套列。

q)\l dbmaint.q
q)tables[]
`s#`depthsecond`quotessecond`tradessecond
q)tradessecond
date sym time src price size
------------------------------------------------------------
2018.07.16 AAPL 2018.07.16D08:00:00.078000000 N 25.32 1634
2018.07.16 AAPL 2018.07.16D08:00:03.419000000 O 25.35 1900
2018.07.16 AAPL 2018.07.16D08:00:03.504000000 O 25.32 627
2018.07.16 AAPL 2018.07.16D08:00:03.846000000 O 25.32 69
2018.07.16 AAPL 2018.07.16D08:00:07.177000000 O 25.32 4821
2018.07.16 AAPL 2018.07.16D08:00:07.373000000 O 25.35 2321
2018.07.16 AAPL 2018.07.16D08:00:11.861000000 L 25.33 545

q)
q)copycol[`:hdb2;`tradessecond;`price;`price_new]
2018.08.13 17:14:55 copying price to price_new in `:hdb2/2018.07.16/tradessecond
2018.08.13 17:14:55 copying price to price_new in `:hdb2/2018.07.17/tradessecond
2018.08.13 17:14:55 copying price to price_new in `:hdb2/2018.07.18/tradessecond
q)\l hdb2
q)tradessecond
date sym time src price size price_new
----------------------------------------------------------------------
2018.07.16 AAPL 2018.07.16D08:00:00.078000000 N 25.32 1634 25.32
2018.07.16 AAPL 2018.07.16D08:00:03.419000000 O 25.35 1900 25.35
2018.07.16 AAPL 2018.07.16D08:00:03.504000000 O 25.32 627 25.32
2018.07.16 AAPL 2018.07.16D08:00:03.846000000 O 25.32 69 25.32

如您所见,tradessecond 表现在包含 price_new 列。如果您有不同的情况(嵌套列或者您不想像我在示例中所示那样复制该列),您将必须手动进行更新(重复所有分区,保存列,更新 。 d 文件并在必要时枚举)。

关于kdb dbmaint 用现有数据回填数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51826817/

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