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

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

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

with t1 as (
    select distinct answer_date,author_id from answer_tb
),
t2 as (
    select answer_date,
    author_id,
    answer_date-row_number()over(partition by author_id order by answer_date)date1
    from t1
)
select author_id,author_level,count(date1)days_cnt
from author_tb
join t2 using(author_id)
group by author_id,author_level
having days_cnt >= 3
order by author_id asc

#最大连续登录天数

1.对数据进行去重,同一天内可能同一用户会多次登录,用with t1 as ( )得到去重后的数据表即为t1

2.重点:对t1中已经处理过的数据进行进一步处理,解决连续登录问题,用answer_date-row_number()over(partition by author_id order by answer_date)date1,此处的date1即用为解决连续登录问题的关键,若count(date1)>=3则满足要求。

3.注意过滤条件为count(date1)>=3,是聚合函数,不能用where,要用having

要点:使用with ... as ( )语法得到去重后的数据表以及对日期处理后的数据,之后直接从t1,t1表中取出所需数据即可。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务