mysql 统计连续出现 最大次数

适用场景:
统计连续打卡,签到以及访问等情况的统计。
结果为两列,一列是要统计的字段列,另一列是最大连续记录。

select * from 
(
	select aa.字段名, max(rownum) maxrow 
	from 
	( 
		select bb.id, bb.字段名
		if((bb.字段名=@pname) , @row:=@row+1 , @row:=1) rownum,  # 如果值连续,就递增,否则从0重新开始 
		@pname:=bb.字段名 pn 
		from 表名 bb, 
		(select @row:=0, @pname:='000000') row1  # 定义变量的初始值
	) aa 
	group by aa.字段名
) cc
order by cc.maxrow desc;  # 按照连续次数从大到小排序

你可能感兴趣的:(mysql,mysql)