У меня есть таблица результатов тестов студентов, год и конкретный тест, который выглядит следующим образом:
Student ID Score Year TestName GradeLevel
100001 347 2010 Algebra 8
100001 402 2011 Geometry 9
100001 NA NA NA 10
100001 NA NA NA 11
100001 525 2014 Calculus 12
В этой таблице примеров есть только один идентификатор студента, номои реальные данные, очевидно, содержат много студенческих идентификаторов.
Я пытаюсь написать запрос, который скажет мне, в каждом учебном году, каков был балл каждого ученика по последнему принятому тесту, которыйпроверить это, и в каком классе они находились. Вывод, который я хочу, должен выглядеть следующим образом:
StudentID Year MostRecentScore MostRecentTest MostRecentTestGrade
100001 2010 347 Algebra 8
100001 2011 402 Geometry 9
100001 NA 402 Geometry 9
100001 NA 402 Geometry 9
100001 2014 525 Calculus 12
Вот что я получил до сих пор:
SELECT
STUDENTID,
YEARID,
MAX(Score) OVER (PARTITION BY StudentID ORDER BY Year) as "MostRecentScore",
MAX(TestName) OVER (PARTITION BY StudentID ORDER BY Year) as "MostRecentTest",
MAX(GradeLevel) OVER (PARTITION BY StudentID ORDER BY Year) as "MostRecentTestGrade"
FROM TEST_SCORES
Ноэто только возврат самого последнего теста и связанных с ним значений:
StudentID Year MostRecentScore MostRecentTest MostRecentTestGrade
100001 2010 525 Calculus 12
100001 2011 525 Calculus 12
100001 NA 525 Calculus 12
100001 NA 525 Calculus 12
100001 2014 525 Calculus 12
Любая помощь будет принята с благодарностью.