小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。我有一些面试题、架构、设计类资料可以说是程序员面试必备!
所有资料都整理到网盘了,需要的话欢迎下载!私信我回复【111】即可免费获取

【面试题】

有一张“用户登陆记录表”,包含两个字段:用户id、日期。


【问题】查询2021年每个月,连续2天都有登陆的用户名单。

【解题步骤】

1. 连续问题的万能模板

我在《拼多多面试题:如何找出连续出现N次的内容?》里讲过遇到“连续问题”如何解决,并送出了一个万能模板,模板使用的是窗口函数解决连续问题。

2. 窗口函数

窗口函数lead使用方法:

默认值是指:当向上N行或者向下N行值时,如果已经超出了表行和列的范围时,会将这个默认值作为函数的返回值,若没有指定默认值,则返回Null。

窗口函数lead可以获取每个字段的后面的第n个值,并生成新的一列。

而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。

我们可以先用窗口函数lead获取“用户当月下一个登陆日期”:

当“日期”是该用户在当月最后一天登陆时,记录为“当月最后登陆日期”,如果不进行设置,将会返回Null,不利于理解。

从结果看,我们可以获得以下信息:

1)当“日期”与“用户当月下一个登陆日期”只相差一天,即用户本次登陆为连续登陆;

2)当“日期”与“用户当月下一个登陆日期”相差大于一天,即用户本次登陆为连续登陆的最后一天(也有可能仅登陆一天);

3)当“用户当月下一个登陆日期”等于“当月最后登陆日期”,即用户本次登陆为本月最后一天登陆。

这样,可以判断用户连续登陆的情况。

接下来就解决用户每次连续登陆天数的计算。

3. 子查询


 
用户每次连续登陆天数与用户登陆顺序存在某种必然的关系,此时我们可以先用子查询将用户在本月的阅读顺序查询出来,使用窗口函数row_number:

可以看出,当连续终止时,即:

1)“日期”与“用户当月下一个登陆日期”相差大于一天;

2)“用户当月下一个登陆日期”等于“当月最后登陆日期”;

两种情况。

将这两种情况过滤出来之后,用户连续登陆天数为:当前登陆顺序减去上一个登陆顺序。

“上一个登陆顺序”为Null时,用0代替(使用coalesce函数),那么“每个月登陆顺序”减去“上一个登陆顺序”就是本次连续登陆天数。

过滤出最终结果:

【本题考点】

1.考查对窗口函数的了解

2.考查对子查询的了解

3.考查对连续问题的了解,可以套用万能模板

【举一反三】

【问题】查询2021年每个月,连续5天都有登陆的用户数。

与原题的区别在于:

1)“连续2天”变成了“连续5天”:对最后的where条件进行修改;

2)查询“用户名单”变成了“用户数”:用户group by和count(distinct 用户id)计算用户数。

抖音面试题:遇到连续问题怎么办?相关推荐

  1. HIveSQL面试题52:近一个月发布的视频中热度最高的top3视频【抖音面试题,不得不去吐槽的一个题目】

    目录 0 问题描述 1 数据准备 2 问题分析 3 小结 0 问题描述 现有用户-视频互动表tb_user_video_log id uid video_id start_time end_time ...

  2. iSpiik产品说:抖音-信息浓度大师连续播放功能?

    周末在吃乡村基外卖时候,双手占满,想打开个视频app吃点快料,但是一般的视频app,诸如:b站/爱奇艺之类,内容太重.于是就打开抖音,来电短视频消遣一下,可是美味当前,不停打断去划屏实在难受!心想为什 ...

  3. 抖音流量池如何突破?抖音怎样进去高流量池,深度挖掘用户需求

    抖音系统会将所有的视频用户按照地域.兴趣爱好等标签细分为无数个小流量池,每一个视频都需要不断地冲破每一个小流量池, 从而进入下一个流量池,以获得更高的视频曝光量.而没有冲破小流量池的视频,将会停止视频 ...

  4. 透露抖音、腾讯、阿里、美团招开发岗位硬核面试题,轻轻松松收到offer

    由于内容较多,想要获取面试题的答案请转发+关注,然后私信关键字 "面试" 即可获得免费领取方式. 腾讯 PCG 应用宝数据中台 PCG 感觉疯狂招人,面试难度忽高忽低,面试形式也很 ...

  5. 字节跳动(抖音),软件测试四面,面试题总结!走过路过不要错过

    面试一 1. 简单做一下自我介绍 2. 简要介绍一下项目/你负责的模块/选一个模块说一下你设计的用例 3 .get请求和post请求的区别 4. 如何判断前后端bug/3xx是什么意思 5. 说一下X ...

  6. Spring Bean的生命周期面试题,来自抖音 :文艺TOM

    (这个文章根据抖音的文艺TOM博主抄的,觉得挺好,可以背背,当成面试用,另外我加了一点点) Spring的生命周期被分为五个阶段: 创建前准备阶段 创建实例阶段 依赖注入阶段 容器缓存阶段 销毁实例阶 ...

  7. 抖音Android校招面试题,抖音前端校招一面1小时20分钟

    20200831 抖音前端校招一面视频1小时20分钟 (我人傻了!!!!!!) 1.看你在重构一个项目,你讲讲你重构的心得?你如何保证你重构后的功能逻辑是完整的?你如何让以后来维护你重构的代码的人能清 ...

  8. 字节跳动面试题.寻找抖音红人

    1.题目描述 n个人之间存在m个关系对,关系具有传递性,假如A关注B,B关注C,那么A就间接关注了C.如果一个人被除他之外的所有人都直接或间接关注,那么这个人就是抖音红人,求抖音红人的总数. 2.解题 ...

  9. 抖音、美团、微信,吊打面试官-Android中高级面试题

    可扩展性: APP 必须能够在用户的 UV/PV 数量快速增加的情况下,保持软件合理的性能.只有这样在快速的从 0 到 1 的需求迭代中才能后顾无忧. 可定制化: 在同一个软件系统中可能面向的用户群体 ...

最新文章

  1. Revit二次开发之“PromptForFamilyInstancePlacement()函数动态拖动/鼠标跟随”效果
  2. 告诉SEO初学者:百度收录并非终极目标
  3. linux mysql root登录_linux下 root 登录 MySQL 报错的问题
  4. char数组转string_String类和其它数据类型的相互转换
  5. 1048 Find Coins
  6. Centos7 安装python3.7.2
  7. 「基于模型的系统工程」的发展历程
  8. java webservice 验证_SOAP header验证WebService接口的访问权限
  9. 如何成为数据科学家_成为数据科学家需要了解的10件事
  10. BZOJ1023 SHOI2008 仙人掌图 仙人掌、单调队列
  11. 课堂练习——返回一个整数数组中最大子数组的和
  12. 南大计算机专业考研2019分数,南京大学2019考研分数线公布
  13. Axure 网站后台-能源管理系统 rp 9原模板代码下载
  14. Mp4Box 常用指令
  15. Linux网络编程基础:recv函数
  16. JPG图像太大怎么免费压缩
  17. Python开发【模块】:Urllib(二)
  18. H5跨域通信 - window.postMessage
  19. 顾客银行办理业务时,首先在取号机上取号,然后坐在椅子上等候业务员叫号时前往窗口办理业务,假设银行现在有3个窗口可办理业务,请采用信号量和PV操作描述顾取号等候叫号和银行业务员叫号办理业务的同步操作。
  20. 基于VUE的音乐播放器

热门文章

  1. python可视化——django驾驶舱的实现(下)
  2. 耳切法处理多边形三角划分
  3. 服务器配置80端口文件在哪,给服务器配置一个80端口
  4. 雷达回波信号脉冲压缩处理(MATLAB)
  5. VS2010 Ultimate英文版下载
  6. 李宁品牌重塑_迈伊多品牌重塑的幕后
  7. 70-C语言-判断7的倍数或者含7的数
  8. WMI Win32_OperatingSystem类
  9. isnumber()函数注意事项
  10. 【前端学习日记】VSCODE一键生成前端框架