题解 | #某乎问答最大连续回答问题天数大于等于3天的用户及其对应等级#

某乎问答最大连续回答问题天数大于等于3天的用户及其对应等级

http://www.nowcoder.com/practice/e080f8a685bc4af3b47749ca3310f1fd

1)建立子查询:先关联author_tb表,获取用户的author_level字段,并对用户每天的回答进行去重排序。
SELECT DISTINCT author_id,answer_date,author_level,DENSE_RANK()OVER(PARTITION BY author_id ORDER BY answer_date)rk FROM answer_tb JOIN author_tb USING(author_id)

2)回答日期-排序的结果为同一天的定义为连续日期作答,对用户id,以及连续日期进行聚合后,取连续日期>=3的用户信息。
SELECT author_id,author_level,COUNT(1) days_cnt
FROM (SELECT DISTINCT author_id,answer_date,author_level,DENSE_RANK()OVER(PARTITION BY author_id ORDER BY answer_date)rk FROM answer_tb JOIN author_tb USING(author_id)
)t1
GROUP BY author_id,author_level,DATE_SUB(answer_date,INTERVAL rk DAY) HAVING COUNT(1)>=3 ORDER BY author_id;

SQL解题集 文章被收录于专栏

这是牛客SQL相关的解题集

全部评论
两个问题,1、怎么体现筛选了最大答问天数呢2、为什么是对用户去重而不是对日期做去重,dense_rank和date_sub不都是对日期的处理么
点赞 回复 分享
发布于 2024-01-10 16:39 湖南
这个更通俗易懂些
点赞 回复 分享
发布于 2022-11-17 23:03 广东
请问为什么不对author_level进行group by 就会报错呢?
点赞 回复 分享
发布于 2022-09-19 12:34 湖南

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
11
6
分享

创作者周榜

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