smmsamm Ответов: 0

Существует ли какой-либо запрос/код, который может найти общие значения в записях?


Не могли бы вы помочь мне (возможно, простой и быстрый запрос, если есть или какой-то быстрый код) конвертировать мой файл данных 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}
Это очень быстро (я думаю, из-за использования файла карты), но он находит только общие значения.
Пожалуйста, дайте мне любую помощь или предложение.
Спасибо

Что я уже пробовал:

поиск общих значений по коду или запросу в любой базе данных

0 Ответов