【问题标题】:SQL to search for string matches and compute a percentageSQL 搜索字符串匹配并计算百分比
【发布时间】:2013-12-12 12:39:31
【问题描述】:

我有一个带有两个表的基本 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;

谁能建议最好的方法来开发/改变它以实现我想要的输出? 谢谢!

【问题讨论】:

  • 你能举个例子和想要的输出吗?我不确定您的记录匹配的输出应该是什么。
  • 一个表上的记录的百分比,也可以在另一个表中找到。

标签: sql oracle compare match percentage


【解决方案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.

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

【讨论】:

  • 太好了,谢谢! “如果有重复,计数可能会关闭”是否有解决方法?例如,列出无法解析的重复项和记录的方法? (名称匹配,但地址不同)
猜你喜欢
  • 1970-01-01
  • 2021-02-05
  • 2012-04-05
  • 1970-01-01
  • 2019-07-07
  • 2014-12-03
  • 1970-01-01
  • 2023-03-22
  • 2012-02-29
相关资源
最近更新 更多