题解 | #连续两次作答试卷的最大时间窗#这个日期搞得头晕

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

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

select t1.uid,max(days_window)  as days_window,
       round(max(days_window) * avg_exam_cnt,2) as avg_exam_cnt
from (
        select uid,datediff(next_time,start_time) + 1 as days_window
        from (
                select uid,start_time,lead(start_time,1)over(partition by uid order by start_time) as next_time
                from (
                    select uid,start_time
                    from exam_record
                    where year(start_time) = 2021
                     ) t
            ) t3
    ) t1
join (select uid,round(count(1)/(datediff(max(start_time),min(start_time))+1) ,6) as avg_exam_cnt
            from exam_record
            where year(start_time) = 2021
            group by uid
     ) t2
on t1.uid = t2.uid
where t1.uid in(
            select uid
            from exam_record 
            where year(start_time) = 2021
            group by uid
            having count(distinct date_format(start_time,'%Y%m%d')) >= 2
            )
group by t1.uid
order by days_window desc,avg_exam_cnt desc
       

全部评论

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务