我设置了这个WITH查询来获取多边形重叠的地方的溶解多边形。
CREATE TABLE public.dissolve_intrsct AS
( WITH dissolved AS(
SELECT ST_Union(pt.geom) as geom, count(geom) as buff_ct,
count(pt.count) as intrsct_ct
FROM public.intrsct_buff as pt
)
SELECT (ST_DUMP(geom)).geom::geometry(POLYGON, 2263), intrsct_ct, buff_ct
FROM dissolved);
我的输出结果是返回几何体(good),但同时也返回查询(59144)之前所有几何体的总计数,这两个几何体 intrsct_buff
和 buff_ct
我想查询返回为创建新的多边形而解散的多边形的数量。(例如,如果三个多边形重叠,在这个查询之后,我想得到 buff_ct
返回 3以及 intrsct_ct 只是返回我在 public.intrsct_buff
)
我找到了需要做的事情。
在创建了这个表并添加了一个PRIMARY KEY后 ID
,然后我用 ST_Intersects
找出我溶解的多边形与原始缓冲区的交点,并计算交点多边形的数量。
CREATE TABLE dissolve_ct AS(
SELECT ds.id, ds.geom, count(pt.geom) AS
buff_ct
FROM public.dissolve_intrsct as ds
LEFT JOIN public.intrsct_buff as pt
ON ST_Intersects(ds.geom, pt.geom)
GROUP BY ds.id
);
`