postgresql: группировка по обновлению столбца - синтаксическая ошибка - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь получить высоту самой высокой точки в каждой области, я написал этот запрос, который работает нормально:

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

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы можете использовать связанный подзапрос, чтобы сделать это:

UPDATE obstacle_buffer 
    SET max_valhgt_ft = (select max(obstacle.valhgt_ft) 
                         from obstacle 
                         where st_contains (obstacle_buffer.geom, obstacle.geom)) 
0 голосов
/ 24 апреля 2020

Вы пытались обновить таблицу соединений, и это не разрешено; вместо этого следует использовать подзапрос

. Вы можете сделать это

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)

...