如何将两条线几何连接成一条记录?
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
;
有两种选择
- 使用以下查询将联合记录插入新 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 -
- 更新现有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
以上命令的输出将是-
因此您需要在更新完成后删除重复的记录。
我有一系列行需要合并成一条记录。波纹管是我的数据的模型表示。部分节号重复,我需要将相同节号的几何更新为一条记录。
模型数据:
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
;
有两种选择
- 使用以下查询将联合记录插入新 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 -
- 更新现有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
以上命令的输出将是-
因此您需要在更新完成后删除重复的记录。