删除无键表中多余的重复条目

时间:2019-03-22 12:32:31

标签: kdb k

我有下表,并希望删除所有重复的行。我创建了一个列dup,用于计算重复项的数量。

delete from table where dup>1将删除重复项的所有条目,但我仍希望表中保留1个条目。

ISIN         RIC      BLOOMBERG dup
-----------------------------------
LU1681046006 CWEm.BS  CWEM EB   2
LU1681046006 CWEm.BS  CWE EB    2
LU1681046006 CWEm.BS  CWEM EB   2
LU1681046006 CWEm.BS  CWE EB    2
LU1681046006 CWEm.CHI CWEM IX   2
LU1681046006 CWEm.CHI CWE IX    2
LU1681046006 CWEm.CHI CWEM IX   2
LU1681046006 CWEm.CHI CWE IX    2
LU1681046006 CWE.MI   CWE IM
LU1681046006 WDNR.DE  WDNR GY

因此,结果表应如下所示:

ISIN         RIC      BLOOMBERG dup
-----------------------------------
LU1681046006 CWEm.BS  CWEM EB   2
LU1681046006 CWEm.BS  CWE EB    2
LU1681046006 CWEm.CHI CWEM IX   2
LU1681046006 CWEm.CHI CWE IX    2
LU1681046006 CWE.MI   CWE IM
LU1681046006 WDNR.DE  WDNR GY

有什么想法可以实现吗?

2 个答案:

答案 0 :(得分:7)

尝试distinct <table name>

这应该返回表的所有不同行

有关更多信息,请参考以下链接: https://code.kx.com/q/ref/search/#distinct

答案 1 :(得分:4)

我认为您也许可以使用distinct而不是尝试计算重复项。

q)td  
a   b 
----- 
kdj 8 
eeg 1 
nce 9 
jog 5 
cih 4 
hkp 6 
aea 6 
blm 1 
ooe 8 
jgj 5 
jgj 5 

q)distinct td
a   b
-----
kdj 8
eeg 1
nce 9
jog 5
cih 4
hkp 6
aea 6
blm 1
ooe 8
jgj 5