前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你能连续读书多少天?

你能连续读书多少天?

原创
作者头像
猴子数据分析
修改2021-07-08 14:26:49
4600
修改2021-07-08 14:26:49
举报
文章被收录于专栏:猴子数据分析猴子数据分析

【面试题】

有一张“阅读记录表”,包含2个字段:用户id、阅读日期。

查询3月份以来,连续阅读5天及以上的用户名单。

【解题步骤】

1. 连续问题的万能模板

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

2. 窗口函数

窗口函数lead使用方法:

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

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

查询结果:

3. 子查询

基于窗口函数lead获取的结果,要筛选出连续阅读5天及以上的用户名单。

只需要满足以下条件:

1)“后面第1个日期”与“阅读日期”差1天;

2)“后面第2个日期”与“阅读日期”差2天;

3)“后面第3个日期”与“阅读日期”差3天;

4)“后面第4个日期”与“阅读日期”差4天。

一个用户同时满足上面4个条件,说明:该用户至少一次连续阅读了5天。

以上条件的过滤可以使用date_sub函数:获取某个日期前n天的日期。

最终结果为:

查询结果:

【本题考点】

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

2.考查对子查询的了解;

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

推荐:从零学会SQL?

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档