with t as ( select distinct sales_date,user_id, dense_rank() over(partition by user_id order by sales_date) as rk from sales_tb ) , m as ( select sales_date,user_id, date_sub(sales_date,interval rk day) as gro from t ) select user_id, cnt as days_count from( select user_id, max(sales_date)-min(sales_date)+1 as cnt from m group by user_id,gro ) as p where cnt >= 2 group by user_id,cnt order by user_id