Ответ, представленный здесь, должен был работать для многих столбцов, как использовать разгруппировку с несколькими составными столбцами в 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"
Могу ли я услышать некоторую информацию от экспертов, пожалуйста