题解 | #做为SQL新手,正确的解题姿势#

第一步:熟悉语法,排序窗口函数:lag/lead:用于统计窗口内当前行往前或者往后第n行值。

语法:lag/lead(col,n,default) ,第一个参数是列名,第二个参数是偏移的offset,第三个参数是超出记录窗口时的默认值

第二步:根据题干拆解代码

题干“下一次刷题日期”,所以用 lead(date,1)。

题干“若是没有则为None”,所以第三参数有了。 lead(date,1,null)。PS:null 在执行代码后返回的空置为 None

题干“该用户的下一次”partition by user_id,分组

题干“该用户的下一次刷题日期”order by date

第三步:组装代码

select user_id,date,

lead(date,1,null) over(partition by user_id order by date) as nextdate

from questions_pass_record

全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
嵌入式的小白:有道理哈,这种就看能不能捞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务