image.png
【抖音面试题】
有一张“用户登陆记录表”,包含两个字段:用户id、日期。
image.png
【问题】查询2021年每个月,连续2天都有登陆的用户名单。...子查询
1)获取登陆日期的天,需要用到day()函数;
2)获取登录日期的月,需要用到month()函数;
3)获取每个月登陆顺序,这类问题属于“每个+排序”,要想到用《猴子 从零学会SQL》里讲过的知识...也就是分组(group by 月,用户id,标记),统计(对分组后每个组计数就是连续登陆的天数 count)
1 select 月,用户id,标记,
2 count(*) as 连续登陆天数...1 select distinct 月,用户id
2 from t3
3 where 连续登陆天数 >= 2;
到这里我们已经得到了题目要求的结果,可以把前面的子查询t1、t2、t3代入上面的SQL语句...,就得到了最终的SQL:
1 select distinct 月,用户id
2 from
3 (select 月,用户id,标记,
4 count(*) as 连续登陆天数
5 from