【题目】
表 t 的数据如下:
name
A
A
B
C
C
C
如何只通过SQL得到以下结果:
name number
A 1
A 2
B 1
C 1
C 2
C 3
select `name`,rank from (
select result1.`name` `name`,if(@mark=result1.`name`,@rank:=@rank+1,@rank:=1) as rank, @mark:=result1.`name`
from (select `name` from t) result1 ,(select @mark := null ,@rank:=0) temp
)re ;