欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-04-08 13:14:03
...

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 |