首页 > 解决方案 > 使用重复值计数器更新列

问题描述

我想先计算重复值计数器,然后将其用于要更新的​​另一列。
我怎样才能做到这一点?

首先,我有一个下表:

ID 另一个ID
1 空值
1 空值
1 空值
2 空值
2 空值
2 空值
2 空值
... ...
ñ 空值

然后计算重复值计数id

ID 另一个ID 重复_cnt
1 空值 1
1 空值 2
1 空值 3
2 空值 1
2 空值 2
2 空值 3
2 空值 4
... ... ...
ñ 空值 X

最后,使用 allduplicate_cnt到 UPDATE another_id

ID 另一个ID 重复_cnt
1 1 1
1 2 2
1 3 3
2 1 1
2 2 2
2 3 3
2 4 4
... ... ...
ñ X X

非常感谢您的建议!

标签: mysqlsql

解决方案


我建议只重建表格:

create table temp_t as
    select t.*, row_number() over (partition by id order by id) as seqnum
    from t;

truncate table t;

insert into t (id, another_id)
    select id, seqnum
    from temp_t;

注意:使用前要非常小心truncate table。先看结果!


推荐阅读