我在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
ROW_NUMBER()
给分区中的每一行分配唯一的数字
按条款订货
关于sql - 如何用增加的间隔值更新列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34788854/