mysql - 使用重复值计数器更新列
问题描述
我想先计算重复值计数器,然后将其用于要更新的另一列。
我怎样才能做到这一点?
首先,我有一个下表:
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 |
非常感谢您的建议!
解决方案
我建议只重建表格:
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
。先看结果!
推荐阅读
- c++ - 短不会溢出visual c++ 2017
- google-cloud-platform - Google Built CentOS Image - 有人有这个下载吗?
- git - 提交时间在未来的后果
- c# - 在 Unity 中用脚本制作一个数组?
- c# - 带有条件过滤器的 Nest 中的模糊弹性搜索查询
- python - 熊猫输出到 json
- javascript - 我正在返回渲染,但问题仍然存在
- django - 我需要访问一个外键元素来填充 ModelForm
- sling - 如何在 Composum 平台上公开网站
- c++ - Poco 的 Path current() 没有返回 C++ 中的当前工作目录