MySQL:按照外观顺序创建一个序列

时间:2015-10-17 07:12:09

标签: mysql sql

我需要在列中找到相同值的数量并为它们提供序列号。 例如,如果我有一个带有数据列D的表:

d
一个
一个

一个

ç
ç
D

我需要创建一个包含数据序列号的列S:

D S
A 1
A 2
B 1
A 3
B 2
C 1
C 2
D 1

正如您可能看到的那样,有三个A,他们根据出现的顺序得到一个数字。与其他数据相同。 我对SQL不是很有经验,可能有人帮忙吗?

1 个答案:

答案 0 :(得分:1)

假设您的表中有一个确定行顺序的id字段,您可以使用以下查询来获得所需的结果:

SELECT id, D, (SELECT COUNT(*) + 1
               FROM mytable AS t2
               WHERE t1.D = t2.D AND t2.id < t1.id) AS S
FROM mytable AS t1               

Demo here