select 

user_id,
max(lasting)+1 as max_consec_days


from (


select 

user_id,
init_day,
max(row_number1)-min(row_number1) lasting

from 
(
select 
fdate,
user_id,
row_number() over(partition by user_id order by fdate ) as row_number1,

date_sub(fdate, interval row_number() over(partition by user_id order by fdate ) day) as init_day
from tb_dau 
where fdate>='2023-01-01' and fdate<'2023-02-01'
group by 
fdate,
user_id
 ) app 


group by 

user_id,
init_day


)ma

group by user_id