当前位置:Gxlcms > mysql > MySql中关于某列中相同数值连续出现次数的统计

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

时间:2021-07-01 10:21:17 帮助过:98人阅读

MySql中关于某列中相同数连续出现次数的统计 原表如下: www.2cto.com 100 101 102 100 100 103 104 102 102 105 106 101 101 输出如下: www.2cto.com 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

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

原表如下: www.2cto.com

100

101

102

100

100

103

104

102

102

105

106

101

101

输出如下: www.2cto.com

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 |

create table nums( n int );

insert into nums values (100), (101), (101), (102);

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 GROUP BY n order by n ;

输出结果:

| C | N | @TP := N |

----------------------

| 1 | 100 | 100 |

| 2 | 101 | 101 |

| 3 | 102 | 102 |

人气教程排行