Как я могу дедуплицировать строки идентификатора в Postgresql - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть данные, которые выглядят так:

id     | neighbour_id | distance_meters  
-----------+--------------+------------------
6426 |    6428 | 287.488739674119
6429 |    6428 | 249.869885094284
6428 |    6429 | 249.869885094272
8666 |    8667 | 234.957790871716
6427 |    6430 | 231.043072328645
6431 |    6430 | 206.299209322371
...etc

Это результат запроса к моей таблице postgres, которая вычисляет расстояние между объектами с уникальным id, и говорит мне ближайший как neighbour_id (как это происходит не важно). Столбец neighbour_id не является уникальным.

Это задача устранения дубликатов, поскольку эти объекты в пределах 300 м друг от друга я хочу рассматривать как часть одной и той же структуры.

Как в PostgreSQL могу ли я создать для этой таблицы новый столбец с именем structure_id, который может группировать объекты по их ассоциациям соседей?

Например, идентификаторы 6426, 6429 и 6428 являются частью одной и той же структуры и должны иметь общий идентификатор структуры. скажем, 6426 (или 6429 или 6428, что неважно, если они одинаковы). Также должен быть один структурный идентификатор для идентификаторов 6427, 6430 и 6431 (на основе этого фрагмента данных).

...