select t.course,t.term,t.name from  ( select name,course,term,rank() over  (partition by term,course order by score ) rank from student )  t where t.rank=1