with t0 as 
(
    select
        sales_date,
        user_id,
        dense_rank() over(partition by user_id order by sales_date) as ranking
    from sales_tb
)
,t1 as 
(
    select
        a.user_id,
        count(distinct sales_date) as days_count
    from
        (
            select
                sales_date,
                user_id,
                date_sub(sales_date,interval ranking day) as dt
            from t0
        )a
    group by a.dt,a.user_id
)
select
    user_id,
    max(days_count) as days_count
from t1
where days_count>=2
group by user_id

和连续登录天数一样的做法。使用开窗函数做统一特征再聚合即可