Существует ли какой-либо запрос/код, который может найти общие значения в записях?
Не могли бы вы помочь мне (возможно, простой и быстрый запрос, если есть или какой-то быстрый код) конвертировать мой файл данных CSV (с разделением запятыми):
1,A,C,Z,F,G 2,G,Q,R,C, 3,Z,G,Q, 4,C,F, 5,O,P, 6,O,X,Y,J, 7,A,P,X,У меня есть эта таблица с ~1 000 000 записей,таких как эти 7 записей,которые вы видите (**в реальной базе данных A, B, C,... являются словами в строке**), записи 1 и 2 являются общими в значении G и C и 2,3 и 1,3 И...
Я хочу синхронизировать записи, если они имеют по крайней мере два общих значения, таких как записи 1 & 2,3,4 (но запись 5,6,7 не имеет по крайней мере 2 общих значений с другими), и создать такой список:
1 A C Z F G Q R 2 G Q R C A Z F 3 Z G Q A C F R 4 C F A Z G Q R 5 O P 6 O X Y J 7 A P XВ конце концов у нас должно быть 4 одинаковые записи если мы сортируем данные и еще одна без синхронизации:
1 A C F G Q R Z 2 A C F G Q R Z 3 A C F G Q R Z 4 A C F G Q R Z 5 O P 6 J O X Y 7 A P X
Может быть, я не использую хороший термин для своего значения, пожалуйста, смотрите:
1 A C Z F G 2 G Q R Cзапись 1 имеет C и G общее с записью 2 Теперь 1 не имеет R и Q таким образом,мы должны иметь 1 A C Z F G + Q и R,а запись 2 не имеет A, Z и F, таким образом, мы должны иметь: 2 G Q R C + A, Z и F, таким образом, в конце мы имеем:
1 A C Z F G Q R 2 G Q R C A Z F
Мне нужны все записи соответственно в очереди сверху вниз. написал код на delphi, но он такой медленный. Кто-нибудь посоветуйте мне этот заводной код:
def f=[:] new File('Data.csv').readLines().each{ def items=it.split(',') def name items.eachWithIndex { String entry, int i -> if(i==0){ name=entry } else if(entry){ if(!f[entry]) f[entry]=[] f[entry]<<name } } } f.findAll {it.value.size()>1}Это очень быстро (я думаю, из-за использования файла карты), но он находит только общие значения.
Пожалуйста, дайте мне любую помощь или предложение.
Спасибо
Что я уже пробовал:
поиск общих значений по коду или запросу в любой базе данных