kdb连接(连接)表和重复列

时间:2017-01-20 09:36:52

标签: kdb q-lang

我想加入(连接)2个或更多个具有重复列的KDB表:

d1:`a`b`c!(1 2 3;4 5 6;7 8 9) 

d2:`a`b`c`a!(10 20 30;40 50 60;70 80 90;100 110 120)

t1: flip d1 
    a b c
    -----
    1 4 7
    2 5 8
    3 6 9


t2: flip d2
    a  b  c  a  
    ------------
    10 40 70 100
    20 50 80 110
    30 60 90 120

我正在尝试连接2个表,其中表没有值的nils,如下所示:

a  b  c  a  
------------
1  4  7    
2  5  8    
3  6  9    
10 40 70 100
20 50 80 110
30 60 90 120

t1 uj t2 yeilds(只有t1定义的列数):

a  b  c 
--------
1  4  7 
2  5  8 
3  6  9 
10 40 70
20 50 80
30 60 90

t2 uj t1(重复t1中无法使用的条目)

a  b  c  a  
------------
10 40 70 100
20 50 80 110
30 60 90 120
1  4  7  1  
2  5  8  2  
3  6  9  3  

这可能吗?或者我是否需要预先定义一个可以容纳所有可能列的表? 任何建议将不胜感激。

此致 克利福德

1 个答案:

答案 0 :(得分:3)

你的第二个表有2个同名的列('a'),这就是问题所在。 重命名它,你会工作。

q) t1:flip `a`b`c!(1 2 3;4 5 6;7 8 9) 

q) t2:flip `a`b`c`d!(10 20 30;40 50 60;70 80 90;100 110 120)
q) t1 uj t2

 a  b   c   d
 1  4   7   
 2  5   8   
 3  6   9   
 10 40  70  100
 20 50  80  110
 30 60  90  120