我正在尝试在我的数据集中识别垃圾邮件发送者。
我的数据集包含列表ID,用户ID,电子邮件ID和电话号码。列表ID是唯一键,单个人可以有多个列表。
我使用模糊查找来查找电话号码之间的相似性索引,并使用模糊查找来生成电子邮件ID之间的相似性索引。
我正在尝试加入三个表格,每个匹配项都反映在第一个表格的前面。
我尝试使用VLOOKUP
和数据模型但由于缺少公共行而失败。
输入:
Listing ID User ID Email ID Phone no.
1 A A1 A2
2 A A1 A2
3 A A1 A2
4 A A1 A2
5 A A1 A2
6 A A1 A2
7 B B1 B2
8 B B1 B2
9 B B1 B2
10 C C1 C2
11 C C1 C2
电话号码的模糊观察分析
Primary_Profile Primary_Phone Match_Profile Match_Phone Similarity_Index
A A2 B B2 0.9
B B2 A A2 0.9
B B2 C C2 0.7
电子邮件ID的模糊LookUp分析
Primary_Profile Primary_Email Matching_Profile Matching_Email Similarity_Index
B B1 G G1 0.8
期望的结果
Listing ID User ID Email ID Phone no. Profile Match Sim Index Sim Type
1 A A1 A2 B 0.9 Phone
2 A A1 A2 B 0.9 Phone
3 A A1 A2 B 0.9 Phone
4 A A1 A2 B 0.9 Phone
5 A A1 A2 B 0.9 Phone
6 A A1 A2 B 0.9 Phone
7 B B1 B2 A 0.9 Phone
8 B B1 B2 A 0.9 Phone
9 B B1 B2 A 0.9 Phone
7 B B1 B2 C 0.7 Phone
8 B B1 B2 C 0.7 Phone
9 B B1 B2 C 0.9 Phone
7 B B1 B2 G 0.8 Email
8 B B1 B2 G 0.8 Email
9 B B1 B2 G 0.8 Email
答案 0 :(得分:0)
使用这样的联合。注意我分别用#a,#b和#c替换了表名,并使用了通用列。
select a.col1, a.col2, a.col3, a.col4, b.col3, b.col5 , 'Phone' Sim_type from #A a
join #b b on a.col2=b.col1
union all
select a.col1, a.col2, a.col3, a.col4, b.col3, b.col5, 'Email' from #A a
join #c b on a.col2=b.col1
order by Sim_type desc, b.col5 desc, a.col1, a.col2, a.col3