题解 | #连续两次作答试卷的最大时间窗#
连续两次作答试卷的最大时间窗
https://www.nowcoder.com/practice/9dcc0eebb8394e79ada1d4d4e979d73c
# 2021年 至少有两天作答过 连续两次做大试卷的最大时间窗days_window # 根据历史期,在days_window中平均做几套 # 解题重点在于LEAD的用法,当需要比较两个先后经历的时间时,考虑LEAD、LAG SELECT uid, MAX(DATEDIFF(next_start_time, start_time) + 1) AS days_window, ROUND(COUNT(*)/(DATEDIFF(MAX(start_time), MIN(start_time)) + 1) * MAX(DATEDIFF(next_start_time, start_time) + 1), 2) AS avg_exam_cnt FROM( SELECT uid, start_time, LEAD(start_time, 1, NULL) OVER( PARTITION BY uid ORDER BY start_time ) AS next_start_time FROM exam_record WHERE YEAR(start_time) = 2021 ) AS new_table1 GROUP BY uid HAVING days_window > 1 ORDER BY days_window DESC, avg_exam_cnt DESC