日期:2014-05-16 浏览次数:20655 次
原表如下:
100
101
102
100
100
103
104
102
102
105
106
101
101
输出如下:
100 1
101 2
102 3
100 4
100 4
103 5
104 6
102 7
102 7
105 8
106 9
101 10
101 10
sql如下:
SET @t1=0;
SET @tp=-1;
select
@t1 := @t1 + (case when @tp=n then 0 else 1 end) as c,
n,
@tp := n
from nums
order by n;
测试数据:
create table nums( n int );
insert into nums values (100), (101), (101), (102);
输出结果:
| C | N | @TP := N |
----------------------
| 1 | 100 | 100 |
| 2 | 101 | 101 |
| 2 | 101 | 101 |
| 3 | 102 | 102 |