select distinct user_id,count(1) as days_cnt from( select *,row_number() over (partition by user_id order by sales_date) as rk from sales_tb) as t1 group by user_id,date_sub(sales_date,interval rk day) having count(1) >= 2
按照user_id分组使用窗口函数,如果天数连续,则sales_date - rk应该是相同的,再按照user_id和sales_date - rk分组,拿到最终的不同用户连续登录天数的信息