st_intersect 计算每一行的结果

st_intersect count result for each row

我在 postgres 中有两个多边形表,一个是自由形式,一个是网格。我想计算所有网格多边形,它们与每个自由多边形的自由多边形相交。我可以做一个自由形式:

select count (*) from (select a.* from durs_area b, grid a where b.job_reference = '1571754' and ST_Intersects(a.geom, b.the_geom)) as zulu;

有什么方法可以创建查询,为每个自由多边形添加相交网格多边形的数量?

使用连接(而不是不必要的子查询)和聚合。

SELECT ff.job_reference, count (g.*)
FROM durs_area ff
JOIN grid g ON ST_Intersects(g.geom, ff.the_geom)
GROUP BY ff.job_reference, ff.the_geom;