题解 | 查询连续登陆的用户
查询连续登陆的用户
https://www.nowcoder.com/practice/9944210610ec417e94140ac09512a3f5
WITH T1 AS (
SELECT
user_id,
date(log_time) fdate,
row_number() over(partition by user_id order by date(log_time)) rn
FROM login_tb JOIN register_tb USING(user_id)
),
T2 AS (
SELECT
user_id,
DATE_SUB(fdate, interval rn day) grp
FROM T1
),
T3 AS (
SELECT
user_id,
grp,
count(*) consecutive_days
FROM T2
GROUP BY user_id,grp
)
SELECT
user_id
FROM T3
WHERE consecutive_days >= 3

