배경 - 고객 데이터 집합이 있고 문자열 일치 알고리즘을 사용하여 모든 레코드의 유사성을 비교합니다. 그런 다음 직접 또는 연관을 통해 서로 관련된 결과를 그룹화하고 각 그룹에 고유 한 ID를 적용해야합니다.문자열 일치 후 SQL Server 레코드 연결
문제 - 난 예를 함께 기록을 연결하고 각 그룹
에 대한 고유 ID를 적용하는 방법을 생각할 수 없다 데이터는 현재 발견 된 일치하는 다음과 같습니다
(MatchScore는 여기의 문제와 관련이 없지만 데이터가 어디서 왔는지 보여주기 위해 사용됩니다.)
+-------------+-------------+------------+
| CustomerID1 | CustomerID2 | MatchScore |
+-------------+-------------+------------+
| 2021000 | 2707799 | 0.075 |
| 2021000 | 3856308 | 0.082 |
| 774062 | 774063 | 0.041 |
| 998328 | 2278386 | 0.063 |
| 998328 | 998329 | 0.058 |
| 998329 | 2278386 | 0.030 |
+-------------+-------------+------------+
하단 3 개 레코드가 모든 그러므로 내가 그들 연관된 동일한 ID를 갖고 싶어, 연결되어 있습니다.
visual image of these records all being related
이
내가 예를 들어 테이블select '998328' as CustomerID1,'998329' as CustomerID2,'0.058' as MatchScore
into #tmp
union
select '998328' as CustomerID1,'2278386' as CustomerID2,'0.063' as MatchScore
union
select '998329' as CustomerID1,'2278386' as CustomerID2,'0.030' as MatchScore
union
select '2021000' as CustomerID1,'2707799' as CustomerID2,'0.075' as MatchScore
union
select '2021000' as CustomerID1,'3856308' as CustomerID2,'0.082' as MatchScore
union
select '774062' as CustomerID1,'774063' as CustomerID2,'0.041' as MatchScore
select * from #tmp
를 생성하는 데이터가
+----+-------------+-------------+------------+
| ID | CustomerID1 | CustomerID2 | MatchScore |
+----+-------------+-------------+------------+
| 1 | 998328 | 2278386 | 0.063 |
| 1 | 998328 | 998329 | 0.058 |
| 1 | 998329 | 2278386 | 0.030 |
| 2 | 2021000 | 2707799 | 0.075 |
| 2 | 2021000 | 3856308 | 0.082 |
| 3 | 774062 | 774063 | 0.041 |
+----+-------------+-------------+------------+
또는 유사
+----+------------+
| ID | CustomerID |
+----+------------+
| 1 | 2278386 |
| 1 | 998328 |
| 1 | 998329 |
| 2 | 2021000 |
| 2 | 2707799 |
| 2 | 3856308 |
| 3 | 774062 |
| 3 | 774063 |
+----+------------+
코드를 같이 할 것입니다 내가 레코드를 서로 연결하는 방법을 생각할 수 없다고 말하면서 나는 모든 종류의 조인을 시도했지만 유레카 순간은 결코 오지 않는다. 제발 도와 줄 수 있어요.
감사
하단의 3 개 레코드가 의미하는 것은 무엇입니까? 'CustomerID1'이 여러 개의 'CustomerId2' 값으로 나열되어 있기 때문에 연결되어 있습니까? 그리고 왜 'CustomerID1' 998328과 998329는 같은'ID' 값으로 끝나야합니까? – Taryn
은 3 개의 개별 레코드가 고객 998328과 2278386이 일치하므로 998328과 998329가 일치하므로 998329와 2278386이 일치합니다. 따라서 모두 3 명이 서로 일치하는 것으로 표시되었으므로 동일한 ID를 얻으십시오. – DataPro