题解 | #查询用户刷题日期和下一次刷题日期#

查询用户刷题日期和下一次刷题日期

https://www.nowcoder.com/practice/fed7ebf4254240fdb6a2c963996ee8ff

首先这道题依然有问题,前面要求逆序,后面要顺序之类的,感觉像是谁熬夜一晚上出了这一套题似的,错误非常多

但还是刷吧,还是可以巩固练习一下的:

lead的写法:(偏移标的,偏移量,null)

ifnull(A,B):A非空返回A,A是空值返回B

如果找不到返回的就是null,则题里面不需要ifnull,lead偏移量找不到的话默认值就是null

但是这道题默认是找不到返回None,所以需要ifnull,只不过实际业务中应该不会有这么智障的要求,返回个不存在之类的还行。

答案:

select user_id,date,    ifnull(lead(date,1 ) over (partition by user_id     order by date ) ,'None') nextdate   from questions_pass_record

全部评论
同感
点赞 回复 分享
发布于 2022-12-12 15:07 广东
大神你好,请问组之间user_id按照升序排列好像没有在代码中体现,最后运行结果就是升序,这是怎么回事呢?
点赞 回复 分享
发布于 2023-02-06 15:58 上海
不写ifnull也通过了,没影响哈哈哈这智障题
点赞 回复 分享
发布于 2023-02-14 13:50 上海
我觉得那个user_id升序,每组date再用降序可以用ORDER BY user_id,date DESC SELECT user_id, date, IFNULL(LEAD(date,1,null)OVER(PARTITION BY user_id ORDER BY date), "None") AS nextdate FROM questions_pass_record ORDER BY user_id,date DESC 不知道对不对,欢迎大神指点
点赞 回复 分享
发布于 2023-03-05 18:27 北京
SELECT user_id, date, lead(date) OVER (PARTITION BY user_id ORDER BY date) as nextdate FROM questions_pass_record ORDER BY user_id 就行了, 不需要ifnull也能过
点赞 回复 分享
发布于 05-08 16:34 安徽

相关推荐

无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
20 3 评论
分享
牛客网
牛客企业服务