# 得到连续登录的天数,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

京公网安备 11010502036488号