KDB:如何获取 table 中行的不同值?
KDB: how to get distinct values of rows in a table?
所以我有一个 tables,其中包含一些值的行数。我想获得唯一值,而不是唯一行。
columnA
"AZ;B;C"
"AT;B;D"
"E;F"
"C;D"
"A;D"
"A"
所以这是我的 table。我想得到一个列表:A;AT;AZ;B;C;D;E;F。
我试过 select distinct from flip indicators
只是把它变成一个很长的行列表
这是你可以做的:
q)t:([]a:`a`b`c;b:`a`f`g;c:`f`e`a)
q)t
a b c
-----
a a f
b f e
c g a
q)distinct raze value flip t
`a`b`c`f`g`e
你可以试试这个:
q)tbl:([] columnA:("AZ;B;C";"AT;B;C";"A;B;D";"E;F";"C;D";"A;D";enlist"A"))
q)tbl
columnA
--------
"AZ;B;C"
"AT;B;C"
"A;B;D"
"E;F"
"C;D"
"A;D"
,"A"
q)";"sv asc distinct exec";"vs";"sv columnA from tbl
"A;AT;AZ;B;C;D;E;F"
如果你的 table 的最后一行是一个原子,那么你可以试试这个:
q)tbl:([] columnA:("AZ;B;C";"AT;B;C";"A;B;D";"E;F";"C;D";"A;D";"A"))
q)tbl
columnA
--------
"AZ;B;C"
"AT;B;C"
"A;B;D"
"E;F"
"C;D"
"A;D"
"A"
q)exec ";"sv asc distinct ";"vs -1_raze{x,";"}each columnA from tbl
"A;AT;AZ;B;C;D;E;F"
所以我有一个 tables,其中包含一些值的行数。我想获得唯一值,而不是唯一行。
columnA
"AZ;B;C"
"AT;B;D"
"E;F"
"C;D"
"A;D"
"A"
所以这是我的 table。我想得到一个列表:A;AT;AZ;B;C;D;E;F。
我试过 select distinct from flip indicators
只是把它变成一个很长的行列表
这是你可以做的:
q)t:([]a:`a`b`c;b:`a`f`g;c:`f`e`a)
q)t
a b c
-----
a a f
b f e
c g a
q)distinct raze value flip t
`a`b`c`f`g`e
你可以试试这个:
q)tbl:([] columnA:("AZ;B;C";"AT;B;C";"A;B;D";"E;F";"C;D";"A;D";enlist"A"))
q)tbl
columnA
--------
"AZ;B;C"
"AT;B;C"
"A;B;D"
"E;F"
"C;D"
"A;D"
,"A"
q)";"sv asc distinct exec";"vs";"sv columnA from tbl
"A;AT;AZ;B;C;D;E;F"
如果你的 table 的最后一行是一个原子,那么你可以试试这个:
q)tbl:([] columnA:("AZ;B;C";"AT;B;C";"A;B;D";"E;F";"C;D";"A;D";"A"))
q)tbl
columnA
--------
"AZ;B;C"
"AT;B;C"
"A;B;D"
"E;F"
"C;D"
"A;D"
"A"
q)exec ";"sv asc distinct ";"vs -1_raze{x,";"}each columnA from tbl
"A;AT;AZ;B;C;D;E;F"