# 得到连续登录的天数,rank然后用datediff INTERVAL rt days得到新的一列,再根据这一列进行聚类count就可以得到以这一天为起点的连续天数 with a as( select distinct sales_date, user_id from sales_tb ), b as( select user_id, sales_date, rank()over(partition by user_id order by sales_date) as rk from a ), c as ( select user_id, date_sub(sales_date,INTERVAL rk day) as new_dt from b ), d as ( select user_id, count(new_dt) as days_count from c group by user_id having days_count>=2 order by user_id ) select * from d