Разгруппировать более одного столбца в данной таблице - PullRequest
1 голос
/ 21 ноября 2019

Ответ, представленный здесь, должен был работать для многих столбцов, как использовать разгруппировку с несколькими составными столбцами в kdb

Но это не так. Для таких случаев, как:

tb:([] x: 0 1 10; y:(1 1; 2 2 2; enlist 3); z:("kk";"ttt"; enlist "j");w:("cc";"bbbb";enlist "a")
ungroup1: {[col;tbl] @[tbl where count each tbl col;col;:;raze tbl col]}

Это будет работать:

ungroup1[`y;tb]
x  y z     w     
-----------------
0  1 "kk"  "cc"  
0  1 "kk"  "cc"  
1  2 "ttt" "bbbb"
1  2 "ttt" "bbbb"
1  2 "ttt" "bbbb"
10 3 ,"j"  ,"a" 

Опять на основе одного столбца,

ungroup1[`z;tb]
x  y     z w     
-----------------
0  1 1   k "cc"  
0  1 1   k "cc"  
1  2 2 2 t "bbbb"
1  2 2 2 t "bbbb"
1  2 2 2 t "bbbb"
10 ,3    j ,"a" 

Это не будет:

ungroup1[`y`z;tb]

Возвращает: 'длина

Желаемый результат:

x y z w
------------
0 1 k "cc"
0 1 k "cc"
1 2 t "bbbb"
1 2 t "bbbb"
1 2 t "bbbb"
10 3 j ,"a"

Могу ли я услышать некоторую информацию от экспертов, пожалуйста

...