select cur_id user_id,format(max(cnt)+1,0) max_consec_days
from(
select
if(@cur,@per:=@cur,@per:=null) per,
@cur:=fdate cur,
if(@cur_id,@per_id:=@cur_id,@per_id:=null) per_id,
@cur_id:=user_id cur_id,
if(datediff(@cur,@per)=1 and @per_id=@cur_id ,@cnt:=@cnt+1,@cnt:=0) cnt
from(
select fdate,user_id
from tb_dau
where datediff(fdate,'2023-01-01')>=0 and datediff(fdate,'2023-01-01')<=30
order by user_id asc,fdate asc
)a,(select @cur:=null,@per:=null,@cnt:=0,@maxcnt:=0,@cur_id:=null,@per_id:=null)init
)b
group by user_id
order by user_id asc
不用窗口函数也能写

京公网安备 11010502036488号