每行的st_intersect计数结果

时间:2015-04-01 13:56:58

标签: postgresql count postgis

我有两个多边形表,一个自由形式,一个网格在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;

有没有办法创建一个查询,为每个自由形态多边形添加交叉网格多边形的数量?

1 个答案:

答案 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;