如何将两条线几何连接成一条记录?

How to join two line geometries together into a single record?

我有一系列行需要合并成一条记录。波纹管是我的数据的模型表示。部分节号重复,我需要将相同节号的几何更新为一条记录。

模型数据:

id section geom
1 32 1234
2 32 1213
3 32 1231
4 33 3121

我需要的:

id section geom
1 32 1234,1213,1231
4 33 3121

根据我的阅读,ST_union 是一个很好的方法,但可以弄清楚如何更新行。我想我需要对更新查询进行子查询,但不确定如何格式化它。

示例代码:

UPDATE TABLE "tlbsections"
SELECT section,
       ST_Union(geom) as singlegeom
FROM "Ecorys_alkmaar_sections"
WHERE section = '32'
GROUP BY section
;

有两种选择

  1. 使用以下查询将联合记录插入新 table -
insert into Ecorys_alkmaar_sections_1 (id,section,geom)
select min(id),section,ST_UNION(geom) as shape 
from Ecorys_alkmaar_sections
group by section
 Output of the above query will be - 

  1. 更新现有table并删除重复记录

您可以使用以下代码根据连接条件进行更新

update Ecorys_alkmaar_sections t1
set geom = t2.geom 
from (select section,ST_UNION(geom) as shape 
from Ecorys_alkmaar_sections
group by section) t2 
where t1.section=t2.section

以上命令的输出将是-

因此您需要在更新完成后删除重复的记录。