题解 | #最大连续回答问题天数大于等于3天

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

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

典型的连续问题

1、row_number() over(partition by author_id order by answer_date asc) as "rk"

2、如果3天内连续回答问题,那么这三天的 date_add(answer_date, interval - rk day) as ”辅助列“ 必定是相同的

3、然后

count(distinct answer_date) as "days_cnt" #这个就是连续回答的天数

group by author_id ,辅助列

with a as (
        SELECT 
        author_id,
        count(distinct answer_date) as days_cnt
        from (
                select 
                author_id,
                answer_date,
                #row_number() over(partition by author_id order by answer_date asc) as "rk",
                date_add(answer_date, interval -(dense_rank() over(partition by author_id order by answer_date asc)) day) as "辅助列"
                from answer_tb
        ) as t
        group by author_id,辅助列
        having days_cnt>=3
)

SELECT 
df1.author_id,
df2.author_level,
df1.days_cnt
from a as df1
left join author_tb as df2
on df1.author_id = df2.author_id
order by df1.author_id asc

全部评论

相关推荐

沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务