2015-04-01 39 views
0

我有兩個多邊形表格自由格式,並在postgres網格。我想爲每個自由形狀多邊形計算所有網格多邊形與自由形狀多邊形相交的部分。我能爲一個自由做:st_intersect計數每行的結果

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

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

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; 
+1

我將a.job_reference改爲ff.job_reference並完美工作。謝謝 – 2015-04-08 13:50:01