最艰难的一题 | #连续两次作答试卷的最大时间窗#

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

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

with t as
(select uid, exam_id, date_format(start_time, '%Y-%m-%d') day,
dense_rank() over (partition by uid order by date_format(start_time, '%Y-%m-%d')) r
from exam_record
where year(start_time) = 2021)

select a.uid, max(datediff(day2, day1) + 1) days_window, round(count(distinct exam_id, start_time) / (datediff(max(day2), min(day1)) + 1) * max(datediff(day2, day1) + 1), 2) avg_exam_cnt
from
(select t1.uid uid, t1.day day1, t2.day day2
from t t1
join t t2
on t1.uid = t2.uid and t1.r + 1 = t2.r) a
left join exam_record e
on a.uid = e.uid
where year(start_time) = 2021
group by a.uid order by days_window desc, avg_exam_cnt desc;

思路有点乱,尝试了十几次才成功。

全部评论

相关推荐

07-15 12:24
重庆大学 运营
坏消息:和好工作擦肩而过
给点吧求求了:怎么可能因为差几秒,估计就是简历更好看婉拒了
点赞 评论 收藏
分享
一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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