Heim >Datenbank >MySQL-Tutorial >MySql中关于某列中相同数值连续出现次数的统计

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

WBOY
WBOYOriginal
2016-06-07 15:08:172788Durchsuche

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 |

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn