题解 | #第二快/慢用时之差大于试卷时长一半的试卷#

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

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

比较综合

  1. 窗口函数:lead()over() first_value()over() last_value()over()
  2. 时间做差函数:datediff(大,小)
  3. 注意要的是2021年数据
with t as 
(select uid,
        date(start_time) as ftime,date(lead(start_time,1)over(partition by uid order by start_time)) as ltime,
        datediff(LAST_VALUE(DATE(start_time))over(partition by uid),FIRST_VALUE(DATE(start_time))over(partition by uid))+1 as t_gap
from exam_record
where year(start_time)=2021)
select *
from
(select uid,if(max(DATEDIFF(ltime,ftime))>1,max(DATEDIFF(ltime,ftime))+1,0) as days_window,
           round(count(1)/t_gap*if(max(DATEDIFF(ltime,ftime))>1,max(DATEDIFF(ltime,ftime))+1,0),2) as avg_exam_cnt
from t
group by uid) t1
where days_window <>0
order by days_window desc,avg_exam_cnt desc
全部评论
还有没有更简短的代码呀🤭
1 回复 分享
发布于 2021-11-22 11:13

相关推荐

03-07 17:51
已编辑
南华大学 后端工程师
asdasdasda...:也不知道是不是真的被逼呢,也有可能女方有很多东西瞒着男方,这种东西男方什么情况都不知道全靠女方说,很难评的
点赞 评论 收藏
分享
03-12 15:35
嘉应学院 Python
M_地球online...:真“boss直聘”
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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