Вы, вероятно, не должны этого делать, поскольку ваш столбец заказа на самом деле представляет собой просто данные, полученные из остальной таблицы, и он может быть признан недействительным при изменении любых данных. При этом, если вы должны сделать это, соединение обновления будет одним из вариантов:
UPDATE mytable AS t1
SET order_column = t2.rnk
FROM
(
SELECT *, RANK() OVER (PARTITION BY column1 ORDER BY column2) rnk
FROM mytable
) t2
WHERE t1.id = t2.id;
Я предполагаю, что в вашей таблице есть столбец первичного ключа id
. Если PK будет называться как-то иначе, измените имя, используемое в моем запросе. Если в вашей таблице нет первичного ключа, добавьте его.