Je pense que c'est ce que vous voulez, cela vous donnera l'étudiant avec le score le plus élevé sur chaque sujet, si vous voulez un sujet particulier, vous pouvez changer WHERE SubjectID=Subjects.SubjectID
à WHERE SubjectID=particular_subject_id
SELECT Student.FirstName, Subjects.SubjectName, Grade.Grade, Subjects.SubjectID FROM
Student INNER JOIN Grade ON Grade.StudentID=Student.StudentID
INNER JOIN Subjects ON Grade.SubjectID=Subjects.SubjectID WHERE Grade.Grade=
(SELECT MAX(Grade) FROM Grade WHERE SubjectID=Subjects.SubjectID)
Pour la moyenne :
SELECT Subjects.SubjectName, AVG(Grade.Grade), Grade.ClassID, Subjects.SubjectID
FROM Grade INNER JOIN Subjects ON Grade.SubjectID=Subjects.SubjectID
GROUP BY Grade.ClassID, Grade.SubjectID;
Voici un violon fonctionnel pour voir les résultats du score le plus élevé et de la moyenne.