如何使用由另一列分区的 ID 更新列?
How to update a column with IDs partitioned by another column?
我有 table 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中使用是抛出错误。有人可以帮助我吗?
您可以使用 Common Table Expression (CTE):
;WITH CTE AS(
SELECT *,
RN = DENSE_RANK() OVER(ORDER BY acct_num)
FROM account
)
UPDATE CTE SET id = RN
我有 table 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中使用是抛出错误。有人可以帮助我吗?
您可以使用 Common Table Expression (CTE):
;WITH CTE AS(
SELECT *,
RN = DENSE_RANK() OVER(ORDER BY acct_num)
FROM account
)
UPDATE CTE SET id = RN