,期望输出结果中会看到aaa有3,4,5日记录,也会有4,5,6日的记录,那么4,5就会出现两次,原来数据表中至于一次,所以还是得“生成”数据;
维度 评分
题目难度 ⭐️⭐️⭐️⭐️
题目清晰度 ⭐️...⭐️⭐️⭐️
业务常见度 ⭐️⭐️
三、SQL
1.使用lead()函数按照用户分组,日期排序,查询出后面第三行的日期date1;使用date_add()计算出3天后的日期date2
select...2.判断date1和date2是否相等,如果相等则代表为连续登录,否则非连续登录计算出is_conn,然后根据is_conn的标识筛
with t1 as
(
select
user_id,...3.根据is_conn的标识,进行筛选出所有连续登录3天的开始登录日期
with t1 as
(
select
user_id,
login_date,
lead(login_date...4.生成一个包含0,1,2三行记录
select explode(sequence(0,2)) as date_diff
查询结果
5.步骤3,4进行笛卡尔积得到最后结果
with t1 as
(