Я сравниваю каждую строку таблицы с каждой другой строкой, чтобы найти минимальное расстояние.Я также хочу добавить два столбца, один из которых называется «closest_distance», а другой - «id_of_the_closest_distance».Я знаю, что мне нужно сделать это в два этапа: один - обновить первый ряд, а второй - оценить второй ряд на основе первого.У меня есть запрос, который дает мне ближайшее расстояние, как показано ниже:
SELECT DISTINCT ON (a.id)
a.id,
(SELECT
MIN(ST_HausdorffDistance(a.the_geom, b.the_geom))
FROM
gridareas AS b
WHERE
b.id != a.id
)
FROM gridareas AS a;
Однако я не могу использовать простой
UPDATE tablename SET colname = expression;
и использовать запрос выше в качестве выражения, потому что
ERROR: subquery must return only one column
LINE 5: (SELECT DISTINCT ON (a.id)
С другой стороны, подзапрос не может возвращать как a.id, так и MIN (ST_HausdorffDistance ()).
Как мне обновить этот столбец?