Я пытаюсь сопоставить/объединить клиента, чтобы удалить дубликат в SQL.сопоставление слиянием клиента без инструментов
Я объясню небольшим примером. У меня есть таблица Customer, которая содержит имя, фамилию, ssn (не всегда заполняется) + номер телефона + адрес электронной почты.
Если у меня есть 3 правила, чтобы определить, дубликатом
same name,firstname,ssn
same name,firstname,phone
same name,firstname,email
образец:
custid, firstname,lastname,ssn,phone
1,billy,johns,null,020 6666 2222,null
2,billy,johns,111-225,020 6666 2222,null
3,billy,johns,111-225,020 6666 8888,[email protected]
4,billy,johns,null,020 6666 1111,[email protected]
5,eddy,barzoun,222-785,020 5252 5252
Основываясь на правилах, клиент 1,2,3 и 4 одинаковы.
- 1 и 2 матча на правиле номер телефона
- 2 и 3 матча по правилу Ssn
- 3 и 4 матча по правилу электронной
- Клиент 5 один.
В принципе, для группировки по ssn, телефону и электронной почте я могу использовать аналитическую функцию sql или группу. Ниже результат:
custid, group_id_phon,group_id_ssn,group_id_email
1,1,1,1
2,1,2,2
3,2,2,3
4,3,3,3
5,4,4,4
Как я могу сделать, чтобы объединить 1,2, 3 и 4 в одном уникальном клиента. Я имею в виду, как я могу консолидировать (группировать) Клиента после применения правил. Я как бы застрял.
Я мог бы это:
6,billy,johns,null,null,[email protected]
7,billy,johns,null,null,[email protected]
Так 6 и 7 должны быть сгруппированы и не связаны с 1,2,3 и 4. Благодаря
не мог даже думать о том, что делать – GurV
mt0 не будет работы.Если увидеть, что я добавил. – Linus
@ Linus Обновлен для вашего дополнительного тестового примера. – MT0