我的表ACCOUNT
包含以下两列
id,acct_num
1,123
2,123
3,456
4,121
5,123
我想在由acct_num
分区的id列中分配整数值这就是我想要的 -
id,acct_num
1,121
2,123
2,123
2,123
3,456
ID应按acct_num排序,对于多次出现的acct_num相同且在列中唯一。
我试过这个 -
update a
set a.id = row_number() over (partition by acct_num order by acct_num)
from account a
窗口函数只能在SELECT中使用时抛出错误。有人能帮助我吗?
答案 0 :(得分:1)
您可以使用Common Table Expression (CTE):
;WITH CTE AS(
SELECT *,
RN = DENSE_RANK() OVER(ORDER BY acct_num)
FROM account
)
UPDATE CTE SET id = RN