我有两个多边形表,一个自由形式,一个网格在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;
有没有办法创建一个查询,为每个自由形态多边形添加交叉网格多边形的数量?
答案 0 :(得分:1)
使用连接(而不是不必要的子查询)和聚合。
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;