select 
user_id
,count(*) days_count
from (
        select 
        distinct user_id
        ,sales_date
        ,dense_rank()over(partition by user_id order by sales_date) r
        from sales_tb
     ) t
group by user_id,date_add(sales_date,interval -r day)
having count(*)>=2
order by user_id

和某乎那题同样