2017-01-20 2 views
1

Я хотел бы присоединиться к (конкатенации) 2 или более, KDB таблицы, которые имеют повторяющиеся столбцы: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 

возможно ли это? или мне нужно предварительно определить таблицу, которая может вместить все возможные столбцы? Любой совет будет оценен по достоинству.

С уважением Clifford

ответ

2

Ваша вторая таблица имеет 2 колонки с таким же названием («а») и который дает этот вопрос. переименуйте его, и uj будет работать.

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 
+0

Привет, Рахул, к сожалению, это проблема, которую я пытаюсь решить. Для практического примера, если у вас есть сообщение FIX, которое имеет повторяющиеся группы (один и тот же тег повторяется 1 или более раз). Я пытаюсь импортировать эти сообщения в таблицу, где столбцы сопоставляются с повторяющимися тегами. – cliff

+1

Хорошо, имея несколько столбцов с одинаковым именем, не является хорошим дизайном и не может ожидать, что функции kdb будут вести себя нормально. Лучше предварительно обработать таблицу и объединить разные cols с одним и тем же тегом (name) в один. Что-то вроде: raze each (, '). {value [x] group key x} @ '(d1; d2) – Rahul

+0

Я склонен согласиться с вами, Рахул, просто искал некоторую информацию из сообщества kdb, о том, как они предложили бы это решить. Я попробую ваше предложение. Большое спасибо за вашу помощь. – cliff

Смежные вопросы