【问题标题】:Matching people without national ID匹配没有国民身份证的人
【发布时间】:2019-05-08 03:10:03
【问题描述】:

我正在尝试用姓名首字母、姓氏和出生日期匹配表中的人

我关注了this answer,这有助于减少匹配比当前 ID 更早的 ID 的数量(因此 3 匹配 1,但 1 不匹配 3)

但是我遇到了 1,2 和 3 匹配的问题,结果有
3-2
3-1
2-1

我怎样才能让 3 只匹配 1?

这是我正在使用的代码

select  *
from    
    YourTable t1
    join    YourTable t2 on t1.ID < t2.ID 
    and t1.initial= t2.initial
    and t1.lastname= t2.lastname
    and t1.birth= t2.birth

【问题讨论】:

  • 样本数据和预期结果在这里可能会很有帮助。

标签: sql sql-server plsql


【解决方案1】:

可能是这样的?

 select  t2.id, min(t1.id)
from    
    YourTable t1
    join    YourTable t2 on t1.ID < t2.ID 
    and t1.initial= t2.initial
    and t1.lastname= t2.lastname
    and t1.birth= t2.birth
group by t2.id  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2022-01-17
    相关资源
    最近更新 更多