我正在尝试将“基于人口的质心”列添加到一系列美国县多边形,其中位置不是基于多边形的地理质心,而是基于地理名称人口最多的地方的位置人口。例如,我想将箭头指示的点(点直径 = 人口)的几何形状分配给所选多边形的基于人口的质心列:
我已经测试了这个查询,它为任何给定的多边形(例如波士顿的萨福克县)返回正确的几何图形:
SELECT g1.the_geom
FROM counties c1
JOIN geonames g1
ON ST_Contains(c1.the_geom, g1.the_geom)
WHERE c1.name = 'Suffolk County, MA'
ORDER BY g1.population DESC
LIMIT 1;
但是,我正在处理约 4000 个多边形,当我尝试在这样的 UPDATE 函数中使用查询时,它会无限期地挂起(或者至少比这个数量的特征要长得多):
UPDATE counties
SET the_geom_popcentroid = (
SELECT g1.the_geom
FROM counties c1
JOIN geonames g1
ON ST_Contains(c1.the_geom, g1.the_geom)
ORDER BY g1.population DESC
LIMIT 1
);
我在哪里错误地嵌套了这个 UPDATE 函数?