A表:
B表:
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);
这样会出现很多匹配度,这相同很多 如下:
尝试过 distinct 和 row_number() over (partition by 内容1 order by 相似度 都失败了
我想要达到的结果是内容1和内容2 只出现一次匹配度最高的,或者有什么办法可以体现已经有了匹配比内容2高,没有剩余的内容2
相似度是通过模式识别算法进行计算所得的,无法通过SQL语句获得
用程序做匹配关系,sql的话不好处理。
试一下,你原来里面有点小错误
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
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
前台循环处理,后台处理不了。利用正则表达式