我在 Postgresql 中有一个表:
id qty
1 10
2 11
3 18
4 17
我想在每一行添加一个从 1 开始的数字 意思是我想要:
id qty
1 11 / 10+1
2 13 /11 +2
3 21 /18 +3
4 21 /17+4
第一行 +1,第二行 +2,第三行 +3 等等...
应该是这样的:
update Table_a set qty=qty+(increased number starting from 1) order by id asc;
我该怎么做?
最佳答案
如果列ID是唯一的那么你可以使用下面的方式
UPDATE Table_a a
SET qty = qty + b.rn
FROM (
SELECT id,ROW_NUMBER() OVER (ORDER BY id) rn
FROM Table_a
) b
WHERE a.id = b.id
assigns unique numbers to each row within the PARTITION given the ORDER BY clause
关于sql - 如何更新间隔值增加的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788854/