【发布时间】:2021-06-11 19:07:41
【问题描述】:
我试图通过提供唯一标识符来确保所有相同的客户不会被表示为多个人。 我正在处理的信息是事务性的,因此每个事务可能在不同的时间记录不同的信息。
如果人“A”使用电子邮件“A”和电话“A”
而人“B”使用电子邮件“A”和电话“B”
而人“C”使用电子邮件“B”和电话“B”
我想推断出 Person 'A' = Person 'B' = Person 'C' 即使标识符有所不同。
下面是一个示例表
起点:
| first name | last name | phone | street address | |
|---|---|---|---|---|
| j | jackson | jj@gmail | 12 | 619 Lilac |
| jon | jackson | jj@gmail | 34 | |
| jon | jackson | jj@yahoo | 34 | |
| Mariah | jackson | maj@gmail | 45 | 619 Lilac |
| Katy | Herring | katy@yahoo | 67 | |
| Dalia | Smith | ds@gmail | 89 | 439 Sycamore |
| Dalia | Smith | ds@yahoo | 439 Sycamore |
期望的结果:
| first name | last name | phone | street address | unique customer | |
|---|---|---|---|---|---|
| j | jackson | jj@gmail | 12 | 619 Lilac | 1 |
| jon | jackson | jj@gmail | 34 | 1 | |
| jon | jackson | jj@yahoo | 34 | 1 | |
| Mariah | jackson | maj@gmail | 45 | 619 Lilac | 2 |
| Katy | Herring | katy@yahoo | 67 | 3 | |
| Dalia | Smith | ds@gmail | 89 | 439 Sycamore | 4 |
| Dalia | Smith | ds@yahoo | 439 Sycamore | 4 |
最终,我想找到一个地方来查看家庭交易,因此可以将与孩子 (Dalia Smith/Dalia Smith jr) 具有相同姓名和电话号码的父母视为相同的唯一客户暂且。此外,我正在使用的地址更具体,因此我可以访问适当的数字来破译具有相同街道地址的人。
【问题讨论】:
-
希望您的客户没有一个住在大型公寓楼中... 1 楼的杰克逊小姐可能不喜欢看到留在 15 楼的杰克逊先生的账单。 Dalia Junior 也可能不喜欢被当作她的祖母 Dalia Senior,即使他们住在跨代的房子里。
-
另外,如果有人有儿子或女儿,并且使用自己的电子邮件进行交流,这不会产生预期的结果。 (如果客户不是其他人,为什么要注册两次?)
-
您在问题中包含了“r”标签,所以假设您是 R 用户?不妨试试reclin 包之类的东西,它实现了概率记录链接方法并且非常易于使用。
标签: sql r postgresql