题解 | #最大连续回答问题天数大于等于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

全部评论

相关推荐

06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
第一份工作能做外包吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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