创建唯一的ID以分配给文件中的重复地址

时间:2019-02-21 22:37:51

标签: sql duplicates uniqueidentifier id

当文件中的人具有相同的地址但分配给不同的人时,我正在创建一个家庭ID。对于每个具有相同地址的人,我需要它具有相同的ID,而不是顺序的ID,并且我正在使用一个名为Alpine的程序,因此我需要使用Sql或pig语法版本。

1 个答案:

答案 0 :(得分:0)

  

具有相同地址的每个人的ID相同

最简单的解决方案是根本不创建ID,而只是使用地址作为您的ID。显然,它已经是独一无二的。

如果您要为每个地址生成一个数字,则在SQL中最简单的 standard 方法是将表与其自身(实际上只是地址)联接起来并计算数量许多都在“之前”。大约:

select name, A.addr, count(*) as ID 
from T as A 
join (select distinct addr from T) as B
on B.addr <= A.addr
group by name, A.addr

这将为最低地址生成一个ID,为下一个地址生成2,依此类推。

几乎每个DBMS都具有某种用于生成行号的自动递增功能。