我试图在sql查询中计算贸易区多边形内的不同商店。每个商店在我的postgis数据库中都是一个不同的表。
可以使用以下https://gis.stackexchange.com/a/54680/19349中的以下代码来计算多边形中的点:
SELECT grid.gid, count(kioskdhd3.geom) AS totale
FROM grid LEFT JOIN kioskdhd3
ON st_contains(grid.geom,kioskdhd3.geom)
GROUP BY grid.gid;
我修改了代码以允许多个点:
SELECT grid.gid,
count(DISTINCT store1.geom) AS store1_count,
count(DISTINCT store2.geom) AS store2_count
FROM grid
LEFT JOIN store1
ON st_contains(grid.geom,store1.geom)
LEFT JOIN store2
ON st_contains(grid.geom,store2.geom)
GROUP BY grid.gid;
这可行,但是肯定需要一种更好的方法,因为连续的左联接将成倍地恶化执行时间。