sql >> Base de Datos >  >> RDS >> Mysql

Consulta de la base de datos MYSQL para devolver la puntuación más alta

Creo que esto es lo que quieres, obtendrás al estudiante con la puntuación más alta en cada materia, si quieres una materia en particular, puedes cambiar WHERE SubjectID=Subjects.SubjectID a 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)

Para promedio:

 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;

Aquí hay un fiddle que funciona para ver resultados de puntaje más alto y promedio.