with tb1 as( select distinct sales_date, user_id from sales_tb) select user_id, count(a) days_count from ( select *, date_sub(sales_date, interval (rank()over(partition by user_id order by sales_date)) day) as a from tb1) as tb2 group by user_id, a having days_count>1