读书人

MySql中关于某列中雷同数值连续出现次

发布时间: 2013-02-24 17:58:56 作者: rapoo

MySql中关于某列中相同数值连续出现次数的统计

原表如下:

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 |

原文见:http://stackoverflow.com/questions/12285926/mysql-consecutive-column

读书人网 >Mysql

热点推荐