SQL 使用 row_number() 加上 concat 更新

SQL Update with row_number() plus concat

我根据另一个列的值添加了一个新列。我想用正确的值加上一个按元素分组的增量数字来更新那个新列。 例如:

city new_colum
Madrid Madrid
Madrid Madrid-2
Madrid Madrid-3
Sevilla Sevilla
Sevilla Sevilla-2
Sevilla Sevilla-3
Sevilla Sevilla-4
Alicante Alicante

我尝试了以下代码,但总是出现语法错误。

UPDATE cities as c
SET c.new_colum = concat(t.city,'-', t.col) 
FROM (SELECT ROW_NUMBER() OVER(partition by city) AS col, city_st FROM cities) t;   

假设你已经添加了 'newcolumn' 到 cities 并且在 cities 中有一个名为 'id' 的主键然后:

UPDATE cities c
JOIN
(SELECT id,
ROW_NUMBER() OVER(partition by city ) newcolumn
FROM cities) t on c.id=t.id
SET c.newcolumn = CONCAT(city,'-',t.newcolumn)
;

db-fiddle:

https://www.db-fiddle.com/f/dTnf3bNaXhEKKDzZzSED9K/0