Q/Kdb:组合两列以创建新列作为列表

Q/Kdb:组合两列以创建新列作为列表,kdb,Kdb,我需要一个帮助,使用两个预先存在的列创建一个新列作为列表 CcyPair, Amount1, Amount2 USDJPY 1666 2400 EURUSD 2344 3000 我想要新的输出 CcyPair, Amount1, Amount2, NewAmount USDJPY 1666 2400 1666 2400 EURUSD 2344 3000 2344 3000 我试过了 选择CcyPair、Amount1、Amou

我需要一个帮助,使用两个预先存在的列创建一个新列作为列表

CcyPair, Amount1, Amount2 
USDJPY   1666     2400
EURUSD   2344     3000
我想要新的输出

CcyPair, Amount1, Amount2, NewAmount
USDJPY   1666     2400     1666 2400
EURUSD   2344     3000     2344 3000
我试过了 选择CcyPair、Amount1、Amount2、NewAmount:Amount1;数量2 从桌子上

但是获取长度错误

有没有办法解决这个问题。
谢谢

我认为更新声明正是您想要的

尝试:

您可以在此处阅读有关更新语句的更多信息:

我认为更新声明正是您想要的

尝试:

您可以在此处阅读有关更新语句的更多信息:

您应该使用,'运算符,它的工作方式类似于成对追加。 请注意,在update或select语句中,它必须用括号括起来,否则逗号将被q-slq误解

您应该使用,'运算符,它的工作方式类似于成对追加。 请在括号中选择“更新”或“请用逗号进行错误解释”,否则将用逗号括起来


创建表时使用:t:[]CcyPair:`USDJPY`欧元USD;金额1:16662344;总数2:24003000。我可以很好地运行您的查询,而不会遇到长度错误;很多人都会成功。如果运行元表,它会返回什么?它也是一个八字表还是在内存中创建的?这应该有助于确定长度错误的原因。进一步考虑,我认为最有可能导致长度错误的原因是因为实际的表比示例中的2行大。恰好您的查询成功,有一个2行的表作为Amount1;Amount2是一个2项列表,用于创建表,其中包含:t:[]CcyPair:`USDJPY`欧元USD;金额1:16662344;总数2:24003000。我可以很好地运行您的查询,而不会遇到长度错误;很多人都会成功。如果运行元表,它会返回什么?它也是一个八字表还是在内存中创建的?这应该有助于确定长度错误的原因。进一步考虑,我认为最有可能导致长度错误的原因是因为实际的表比示例中的2行大。恰好您的查询成功,有一个2行的表作为Amount1;Amount2是一个2项列表。这可能是按比例连接两列的最佳解决方案,也是该问题的最佳解决方案。当加入多个专栏时,Josh的答案将在hi@Callum中表现得更好。是的,你说得对。使用翻转比两两连接更快,因为它产生的中间结果要少得多。这可能是按比例连接两列的最佳解决方案,也是解决此问题的最佳方案。当加入多个专栏时,Josh的答案将在hi@Callum中表现得更好。是的,你说得对。使用翻转比成对连接更快,因为它产生的中间结果要少得多。
update NewAmount:flip(Amount1;Amount2) from table
t: ([]CcyPair: `USDJPY`EURUSD; Amount1: 1666 2344; Amount2: 2400 3000);
t: update NewAmount: (Amount1,'Amount2) from t;
t