создание уникального идентификатора для назначения дублирующихся адресов в файле - PullRequest
0 голосов
/ 22 февраля 2019

Я работаю над созданием идентификатора домохозяйства, когда люди в моем файле имеют одинаковый адрес, но назначены разным людямМне нужно, чтобы это был один и тот же идентификатор для каждого человека с тем же адресом, а не последовательный идентификатор, и я использую программу под названием Alpine, поэтому мне нужно использовать Sql или версию синтаксиса pig.

1 Ответ

0 голосов
/ 22 февраля 2019

один и тот же идентификатор для каждого человека с одинаковым адресом

Самое простое решение - вообще не создавать идентификатор, а просто использовать адрес в качестве своего идентификатора.Очевидно, это уже уникально.

Если вы хотите сгенерировать число для каждого адреса, самый простой стандартный способ сделать это в SQL - это соединить таблицу с самим собой (на самом деле только адреса) ипосчитай сколько придет "до".Приблизительно:

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

При этом будет получен идентификатор один для наименьшего адреса, 2 для следующего и так далее.

Почти каждая СУБД также имеет некоторую функцию автоинкремента для генерации номеров строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...