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

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

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

select uid,max(间隔) as days_window,
round(sum(试卷数量)/(datediff(max(做答日期),min(做答日期))+1)*max(间隔),2) as avg_exam_cnt
#	3								/7				*6
from(
	select *,datediff(lead(做答日期,1) over(partition by uid order by 做答日期),做答日期)+1 间隔
	from(
		select uid,date(start_time) 做答日期,count(exam_id) 试卷数量
		from exam_record
		where year(start_time) =2021	#2021年用户做答日期
		group by uid,date(start_time)
		) as 计算间隔
	) as 计算最大时间窗
group by uid 
having days_window >0  #至少做答两天
order by days_window desc,avg_exam_cnt desc;

全部评论

相关推荐

Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
存一千万就可以进大厂实习
石圪节公社发型师:有存一千万的实力还实习个嘚,直接躺平
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务