select user_id,max(inter_num2) as max_consec_days
from(
select user_id,day-row_num as inter_num,count(day-row_num) inter_num2
from(
select day(fdate)*1 day,user_id,row_number() over(partition by user_id order by fdate asc) as row_num
from tb_dau
where fdate between '2023-01-01' and '2023-01-31'
)a
group by  user_id,inter_num
)b
group by user_id