postgresql - 每行的 st_intersect 计数结果

标签 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;

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

最佳答案

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

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;

关于postgresql - 每行的 st_intersect 计数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392745/

相关文章:

sql - PostgreSQL:选择非 DISTINCT 的行数

perl - 命令行 "sort | uniq -c | sort -n"的替代方案

database - 为什么不应该将 PostGIS 安装在 PostgreSQL 数据库 "postgres"中?

django - 在 Geodjango 模型的传单 map 中显示多边形

postgresql - PostGIS:删除重叠的多边形

sql - READ COMMITTED 隔离级别下的 CTE 子句是否可能有不同的结果?

mysql - 合并多个查询

Django、Postgis 和 Heroku : relation "spatial_ref_sys" does not exist

ruby-on-rails - ActiveRecord 在 View 中呈现时结果不正确

ruby-on-rails - Postgres 到 ActiveRecord 查询以进行自定义验证