模糊匹配只获得匹配度最高,或者没有匹配到的数据

遇到了两个表要进行模糊匹配,但是两个表存在的内容有部分相似度名单不完全一样,用SYS.UTL_MATCH.edit_distance_similarity进行匹配度,只保留匹配度最高A表与B表内容

A表:

img

B表:

img

select * from (select A.内容1,B.内容2,SYS.UTL_MATCH.edit_distance_similarity(内容1,内容2) 相似度 from A a,B b
order by SYS.UTL_MATCH.edit_distance_similarity(内容1,内容2) desc);

这样会出现很多匹配度,这相同很多 如下:

img

尝试过 distinct 和 row_number() over (partition by 内容1 order by 相似度 都失败了

我想要达到的结果是内容1和内容2 只出现一次匹配度最高的,或者有什么办法可以体现已经有了匹配比内容2高,没有剩余的内容2

相似度是通过模式识别算法进行计算所得的,无法通过SQL语句获得

用程序做匹配关系,sql的话不好处理。

img

试一下,你原来里面有点小错误

select *
from (
select 内容1,内容2,相似度,ROW_NUMBER() over (PARTITION by 内容1 order by 相似度 desc) rw
from (select A.内容1,B.内容2,SYS.UTL_MATCH.edit_distance_similarity(A.内容1,B.内容2) 相似度
from A,B
on 1=1) t
) t1 where rw=1
  • 可以使用max()取相似度最高的那条记录
  • 把你的sql再包一层,就可以实现了
    如有帮助,请采纳,十分感谢

https://blog.csdn.net/weixin_45015094/article/details/104876348?spm=1001.2101.3001.6650.3&utm_medium=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-3-104876348-blog-84734074.wap_blog_relevant_default&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-3-104876348-blog-84734074.wap_blog_relevant_default

前台循环处理,后台处理不了。利用正则表达式