gpt4 book ai didi

SQL:根据特定描述连接两个表

转载 作者:行者123 更新时间:2023-12-05 06:57:13 25 4
gpt4 key购买 nike

我有两个表:

Two table

我想根据品牌名称将 GTIN 从表 2 添加到表 1。虽然我不能使用 = 或 like,因为正如您在突出显示的行中看到的那样,它们并不完全匹配。

例如

表 1 的第二行,假设有表 2 中的第一个 GTIN,因为两者都是 Ziagen 300mg 片剂。然而,我尝试的所有方法都未能正确匹配所有行。

最佳答案

Postgres 有一个 pg_trgm 模块描述 here .从连接两个表的cross join 开始,计算返回实数的similarity(t1.brand,t2.brand) 函数。

接下来根据一些启发式数字过滤结果。然后使用 row_number() 窗口函数选择单个最佳匹配来缩小范围。

结果可能不准确,您也可以通过考虑通用相似性来改进它。

with cross_similarity(generic1,brand1,gtin,brand2,generic2,sim) as (
select *, similarity(t1.brand, t2.brand) as sim
from t1,
t2
where similarity(t1.brand, t2.brand) > 0
)
, max_similarity as (
select *,
row_number() over (partition by gtin order by sim desc) as best_match_rank
from cross_similarity
)
select * from max_similarity where best_match_rank =1;

关于SQL:根据特定描述连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64937791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com