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