题解 | #连续两次作答试卷的最大时间窗#比较臃肿,但能过

连续两次作答试卷的最大时间窗

http://www.nowcoder.com/practice/9dcc0eebb8394e79ada1d4d4e979d73c

一开始使用day,但跨月的时候会出问题。 所以使用dayofyear。再锁定year在2021年。

select uid,days_window,avg_exam_cnt from (
select uid,days_window,dense_rank()over(partition by uid order by days_window desc) rk  ,round((cnt/gap)*days_window,2) avg_exam_cnt
 from (
select *,dayofyear(lag(start_time,1)over(partition by uid order by start_time desc))-dayofyear(start_time)+1 days_window,
max(dayofyear(start_time))over(partition by uid )-min(dayofyear(start_time))over(partition by uid)+1 gap,
count(uid)over(partition by uid) cnt from exam_record	
where start_time like '2021%')  a
where days_window > 1 and days_window is not null ) b
where rk =1
order by days_window desc,avg_exam_cnt desc

全部评论

相关推荐

09-22 22:22
中山大学 Java
乌鱼子萨奇:羡慕你啊,直接转正了,都不用经历秋招的炼狱,但是你少经历了很多痛苦的事情啊
点赞 评论 收藏
分享
東大沒有派對:这是好事啊(峰哥脸
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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