У меня есть данные, которые выглядят так:
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 (на основе этого фрагмента данных).