kdb中如何使用指定列名列表将多列数据合并为单个列
解决方案
你可以通过提取指定列构成子表后翻转的方式实现,正确写法如下:
Bidcols:`Bid1px`Bid2px`Bid3px; // 写法1:在update语句内直接调用 table:update All_bid:flip table[Bidcols] from table;
如果希望写法更简洁,也可以用取值函数实现:
table:update All_bid:flip value Bidcols from table;
原理解释
table[Bidcols]会返回仅包含Bidcols定义的三列的子表,结构和你手动写的(Bid1px;Bid2px;Bid3px)完全一致flip操作会把列优先的表结构转换为行优先的列表,刚好对应你需要的每行bid值列表效果- 第二种写法的
value Bidcols会在当前表上下文内直接取出对应列的值列表,效果和第一种一致,写法更短
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

