【问题标题】:How do I remove several duplicate geometries?如何删除多个重复的几何图形?
【发布时间】:2019-12-31 16:03:44
【问题描述】:

几个相同的几何图形出现在数据库中。对于每个不同的几何图形,我的输出只有一个 object_id。

我已经设法得到两个重叠几何的结果。

SELECT
  a.objekt_id,
  b.objekt_id,
  a.geometri
  b.geometri
from
  plandk.theme_pdk_tilslutningspligtomraade_vedtaget_v a,
  plandk.theme_pdk_tilslutningspligtomraade_vedtaget_v b
WHERE 
  ST_EQUALS(a.geometri, b.geometri)
AND
  a.objekt_id != b.objekt_id;

结果是一个表格,显示两个重叠几何图形的行。虽然有时有三行有六个重叠的几何图形。我希望结果将所有这些都放在一行中。

【问题讨论】:

  • 使用a.objekt_id < b.objekt_id,你只剩下三个了。

标签: postgresql duplicates postgis


【解决方案1】:
DELETE FROM plandk.theme_pdk_tilslutningspligtomraade_vedtaget_v t
 WHERE EXISTS (SELECT FROM plandk.theme_pdk_tilslutningspligtomraade_vedtaget_v t2
                WHERE t.objekt_id > t2.objekt_id
                  AND ST_EQUALS(a.geometri, b.geometri))

它将删除除此之外的所有双倍几何,每个相等几何组的 id 最低。

【讨论】:

  • 在删除某些内容之前,只需从“Select *”中更改删除以检查这是否是您要删除的内容;)
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 2018-10-30
  • 2018-01-28
相关资源
最近更新 更多