窗口函数是数据分析师常用的语法函数,几乎是大厂的必考题。
窗口函数,也叫OLAP(Online AnallyticalProcessing,联机分析处理) ,可 以对数据库数据进行实时分析处理。
下面给大家准备了两道经典的窗口函数题目。并准备了清晰的解题思路,具体可以看图片。
第一题:求连续天数
下面表格是用户访问表users,记录了用户id (usr_ id)和访问日期(log_ date),求出连续3天下面表格是用户访问表users,记录了用户id以上访问的用户id。

解题思路:
我们需要根据这么一个简单的表,求出连续3天以上访问的用户。可以按照用户id给访问日期排名,然后再用访问日期减去排名,得到一个时间。如果用户是连续访问的,这个时间就是一样的。一个用户的这个时间如果出现3次及以上,说明这个用户连续访问了3天。
第一步:
先按照用户id (usr_ id) 对访问日期(log date)进行排名,这里要用到DENSE_ RANK() 这个窗口函数,用于给出排名序号。这个函数经常应用在给学生成绩进行排名。

查看结果,多了一个rank_ id的列

本文介绍了窗口函数在SQL中的重要性,通过两个经典面试题详细讲解了如何利用窗口函数解决实际问题,包括求连续访问天数的用户和找出每个部门工资前三高的员工。内容涉及DENSE_RANK()等窗口函数的使用方法和OVER子句的细节。
最低0.47元/天 解锁文章
753

被折叠的 条评论
为什么被折叠?



