求连续问题的拉链方法
-- 通用解
select tmp.user_id, min(tmp.login_date) as start_date, max(tmp.login_date) as end_date
from (select a.user_id,
a.login_date,
row_number() over(partition by a.user_id order by a.login_date) as rn,
a.login_date - row_number() over(partition by a.user_id order by a.login_date) as r
from ods.t_zipper a
where a.user_id = 'sunny'
) tmp
group by tmp.user_id,tmp.r
order by 2
/*
这确实是最优解了,你们能看明白吗?
*/