postgresql - 如何在postGIS中找到重叠点

标签 postgresql duplicates postgis

我在 postgis 中有一组具有 x 坐标和 y 坐标的点数据集。很少有点相互重叠,因为它们具有相同的 x 坐标和 y 坐标。如何在 postgresql 中使用查询找到重叠点?

最佳答案

至少有两种方法可以使用聚合函数查找重复记录。假设一个表 my_table 具有几何列 geom 和主键 gid:

首先,使用HAVING 语句,并使用array_agg 收集主键:

SELECT array_agg(gid), count(*)
FROM my_table
GROUP BY geom
HAVING count(gid) > 1;

其次,使用WINDOW 来计算分区。

WITH data AS (
  SELECT gid, count(*) OVER (PARTITION BY geom)
  FROM my_table
)
SELECT * FROM data WHERE count > 1;

关于postgresql - 如何在postGIS中找到重叠点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31913335/

相关文章:

python - 一段时间后 POSTGIS 插入变慢

sql - 大量的 SQL UNION SELECT 语句超过了 max_stack_depth

sql - 在 PostgreSQL 中使用 LEFT JOIN 而不是 NOT IN

mysql - 将 XML 文件自动转换为 SQL 数据库的方法?

ruby-on-rails - 获取用户评论和在同一查询中分组的所有评论

mysql - 数据库中特定字段(列)的数据量

从另一个向量中删除向量中第一次出现的元素

java - Java中的正则表达式,连续多次使用相同的正则表达式

python - 查找并删除 CSV 文件中的重复项

postgis - 如何从实际位于 Postgis 多边形内部的多边形获取最近点