说我有一些关于某些人的数据。这可能包括名称,DOB,地址,电子邮件等...假设此数据上没有唯一标识符(如id列),但也假设没有重复行。我需要弄清楚我可以用来查询该数据并返回唯一行的最小字段集。
解决方案的一个示例是:“我可以创建一个指定名字,dob,电子邮件和zip的查询,这将返回一行或零行。”
我是否以某种有意义的方式提出这个问题?我正在寻找一种技术,算法或软件包,可以解决给定数据集的这个问题。任何可以提供答案的东西都可以。谢谢!
示例数据(真实的东西要复杂得多):
FNAME LNAME DOB ZIP email
John Smith 1/1/12 77777 dude@fake.com
Sean Smith 1/2/08 77777 dude@fake.com
Sean William 4/2/07 77789 stuff@fake.com
Richard Ross 1/1/12 78989 foo@fake.com
这组数据的解决方案是(FNAME,LNAME)或(EMAIL,DOB)或(EMIAL,FNAME)。
答案 0 :(得分:1)
我认为你需要一种迭代的方法。
也许你可以从每一列开始,并尝试创建一个唯一的索引。
如果你有成功,那就完成了。
如果您无法创建唯一索引,请添加另一列并重试。
为所有列执行此操作,直到您可以成功生成索引。