Удалить лишние повторяющиеся записи в таблице без ключа

#kdb #k

#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
  

Есть идеи, как я могу этого добиться?

Ответ №1:

Попробуйте distinct <table name>

Это должно вернуть вам все отдельные строки вашей таблицы

Для получения дополнительной информации, пожалуйста, перейдите по этой ссылке: https://code.kx.com/q/ref/search/#distinct

Ответ №2:

Я думаю, вы могли бы использовать 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