我在postgis中有一组带有xcoordinate和ycordinate的点数据集。由于它们具有相同的x坐标和ycoordniate,因此几个点彼此重叠。如何在postgresql中使用查询找到重叠点?
答案 0 :(得分:3)
使用聚合函数至少有两种方法可以找到重复记录。假设表格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;