postgresql: group by in column update - 语法错误

问题描述 投票:0回答:1

我试图获得每个区域最高点的高度,我写了这个查询,工作正常。

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
postgresql group-by postgis
1个回答
0
投票

你可以使用一个共同相关的子查询来做这件事。

UPDATE obstacle_buffer 
    SET max_valhgt_ft = (select max(obstacle.valhgt_ft) 
                         from obstacle 
                         where st_contains (obstacle_buffer.geom, obstacle.geom)) 

0
投票

你试图更新连接表,但这是不允许的 你应该用子查询来代替。

你可以这样做

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)

© www.soinside.com 2019 - 2024. All rights reserved.