求sql查询,查询用户同一年份某一课程最高成绩及对应的考试开始结束时间

图片说明

查询用户同一年份某一课程最高成绩及对应的考试开始结束时间
course_id 为课程

select user_id,batch_id,grade,start_time,end_time
from(
select user_id,batch_id,grade,start_time,end_time,row_number() over(partition by user_id,batch_id order by grade desc) as rnk
from table
where course_id = '2')t
where rnk = 1

select t2.* from
(select batch_id,course_id,max(grade) as grade from 表 group by 1,2) t1
left join 表 t2
on
t1.batch_id=t2,batch_id and t1.course_id=t2.course_id and t1.grade=t2.grade
;