При этом:
select student_id, subject, max(test_date) maxdate
from tablename
group by student_id, subject
Вы получаете все последние даты для каждого студента и предмета,
поэтому вы присоединяете его к таблице и получаете желаемые результаты:
select t.*
from tablename t inner join (
select student_id, subject, max(test_date) maxdate
from tablename
group by student_id, subject
) g
on g.student_id = t.student_id and g.subject = t.subject and g.maxdate = t.test_date