我在 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/