【发布时间】:2020-08-22 00:33:47
【问题描述】:
这是我的 MySQL 表。我通过向其添加“id”列来更新问题(按照其他人在 cmets 中的说明)。
id data_id
1 2355
2 2031
3 1232
4 9867
5 2355
6 4562
7 1232
8 2355
我想添加一个名为row_num 的新列,以便为重复项分配一个递增的数字,如下所示。结果的顺序无关紧要。
id data_id row_num
3 1232 1
7 1232 2
2 2031 null
1 2355 1
5 2355 2
8 2355 3
6 4562 null
4 9867 null
我关注了this 的回答并想出了下面的代码。但是下面的代码也为非重复值添加了一个计数'1',我该如何修改下面的代码以只为重复添加一个计数?
select data_id,row_num
from (
select data_id,
@row:=if(@prev=data_id,@row,0) + 1 as row_num,
@prev:=data_id
from my_table
)t
【问题讨论】:
-
你运行的是哪个版本的 MySQL?
-
MySQL 5.6 版
标签: mysql sql count duplicates window-functions