You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于hexgrids表几何数据的空间查询:筛选othertable符合条件要素

解决方法

原SQL存在几个问题:

  • 第一条查询的别名写法错误,无法将查询结果作为临时集合供第二条查询使用
  • 表名other table包含空格,若实际表名是othertable需去掉空格
  • 若需求是相交而非完全包含,ST_Within并不合适,应该用ST_Intersects

下面提供几种可行的写法:

方法1:EXISTS子查询

通过子查询判断是否存在符合条件的六边形与当前要素相交:

SELECT * 
FROM othertable ot
WHERE EXISTS (
    SELECT 1 
    FROM hexgrids hg
    WHERE hg.value > 0.5 
    AND ST_Intersects(ot.geom, hg.geom)
)

方法2:CTE(公共表表达式)

先定义符合条件的六边形集合,再通过空间关联筛选目标要素:

WITH hexselection AS (
    SELECT geom 
    FROM hexgrids 
    WHERE value > 0.5
)
SELECT ot.* 
FROM othertable ot
JOIN hexselection hs ON ST_Intersects(ot.geom, hs.geom)

方法3:空间JOIN

直接通过空间关系关联两张表,自动筛选出相交的要素,用DISTINCT避免重复输出:

SELECT DISTINCT ot.* 
FROM othertable ot
JOIN hexgrids hg ON ST_Intersects(ot.geom, hg.geom)
WHERE hg.value > 0.5

内容的提问来源于stack exchange,提问作者jotamon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:21:34