用于搜索字符串匹配并计算百分比的SQL

时间:2013-12-12 12:39:32

标签: sql oracle compare match percentage

我有一个带有两个表的基本Oracle数据库。我需要创建一个查询,使用简单的first_name / last_name / address检查来明确地尝试匹配记录。 我还需要的是表A中记录的百分比,见表B.

所以我现在有一些非常基本的东西:

SELECT First_Name, Family_Name FROM table_b
MINUS
SELECT First_Name, Family_Name FROM table_a;

任何人都可以建议最好的方法来开发/改变这个来实现我想要的输出吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

你可以使用JOIN并平均匹配数来获得百分比;

SELECT 100*AVG(CASE WHEN table_b.First_Name IS NULL THEN 0 ELSE 1 END) percent
FROM table_a 
LEFT JOIN table_b
  ON table_a.First_Name  = table_b.First_Name
 AND table_a.Family_Name = table_b.Family_Name

An SQLfiddle to test with

请注意,如果有重复项,则计数可能会关闭。