with t1 as ( select exam_id, timestampdiff(minute,start_time,submit_time) time_used from exam_record ), t2 as( select exam_id, time_used, row_number() over(partition by exam_id order by time_used asc) fast_rank, row_number() over(partition by exam_id order by time_used desc) slow_rank from t1 ), t3 ...