我试图获得每个区域最高点的高度,我写了这个查询,工作正常。
select max(obstacle.valhgt_ft)
from obstacle,
obstacle_buffer
where st_contains (obstacle_buffer.geom,obstacle.geom)
group by obstacle_buffer.primary_id
但当我试图用这个查询更新一个属性时 我在 "组 "附近出现了一个语法错误。
UPDATE obstacle_buffer
SET max_valhgt_ft = max(obstacle.valhgt_ft)
from obstacle,
obstacle_buffer
where st_contains (obstacle_buffer.geom,obstacle.geom)
group by obstacle_buffer.primary_id
你可以使用一个共同相关的子查询来做这件事。
UPDATE obstacle_buffer
SET max_valhgt_ft = (select max(obstacle.valhgt_ft)
from obstacle
where st_contains (obstacle_buffer.geom, obstacle.geom))
你试图更新连接表,但这是不允许的 你应该用子查询来代替。
你可以这样做
UPDATE obstacle_buffer
SET max_valhgt_ft = (select max(obstacle.valhgt_ft)
from obstacle,obstacle_buffer
where st_contains (obstacle_buffer.geom,obstacle.geom)
group by obstacle_buffer.primary_id)