Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要每个多边形的缓冲多边形邻域的多边形相交计数_Sql_Postgis - Fatal编程技术网

Sql 需要每个多边形的缓冲多边形邻域的多边形相交计数

Sql 需要每个多边形的缓冲多边形邻域的多边形相交计数,sql,postgis,Sql,Postgis,我试图找出在纯SQL中是否可能生成一个表,其中包含层中每个多边形与其缓冲版本中相应相邻多边形(缓冲)的相交数 粗糙和有缺陷的版本如下: For each value in list: SELECT Count(*) INTO intersectcounts FROM parcels,parcelsbuffered WHERE parcels.apn = value AND ST_INTERSECT(parcels.geom,parcelsbuffered.

我试图找出在纯SQL中是否可能生成一个表,其中包含层中每个多边形与其缓冲版本中相应相邻多边形(缓冲)的相交数

粗糙和有缺陷的版本如下:

For each value in list:

SELECT 
    Count(*) 
INTO 
    intersectcounts
FROM
    parcels,parcelsbuffered
WHERE
    parcels.apn = value AND ST_INTERSECT(parcels.geom,parcelsbuffered.geom)
这里的几何图形是多边形 我需要这样的结果

交叉扫描表

APN COUNT
100   3
101  87
...
...
我可以使用python循环并在WHERE子句中使用不同的值修改查询字符串,但我认为这不会有好的性能-有数千个地块(多边形)

您可能希望包括一些验证,以删除带有自己缓冲版本的地块,如

(count(*) - 1) as intersectcounts

其中parcerls.apn parcelsbuffer.apn
为什么要使用缓冲区?试着改用,这会更快更准确。
(count(*) - 1) as intersectcounts
WHERE parcerls.apn <> parcelsbuffered.apn