使用With语句将点值连接到多边形

时间:2019-01-22 08:46:02

标签: sql postgresql postgis

我已经加载了一个函数hex_grid,它可以正常工作see here,但是现在我有了一个六角形网格,我想将多边形层中重叠质心点的所有值加起来。我已经使用了语句来使事情保持整洁,两个select语句都按预期工作,加入时出现了我的问题,显然我做错了什么,但我看不到,任何帮助将不胜感激。这是代码。十六进制和点都在相同的crs中。

with hex AS(
SELECT hex_grid(
1, 
(ST_XMIN(sa.geom)), 
(ST_YMIN(sa.geom)),
(ST_XMAX(sa.geom)),
(ST_YMAX(sa.geom)),
32635, 32635, 32635) as geom_h
FROM geodata.study_area sa),

points AS(
SELECT count(*) as count, ST_Centroid(su.geom) AS geom_p
FROM clas.survey_unit su
group by su.geom
)

SELECT hex.geom_h, points.count 
FROM hex     
JOIN points 
ON ST_Contains(points.geom_p, hex.geom_h)
group by hex.geom_h, points.count;

1 个答案:

答案 0 :(得分:1)

sub首先应具有包含点的多边形

ST_Contains