sql >> Databasteknik >  >> RDS >> Mysql

MYSQL-databasfråga för att returnera högsta poäng

Jag tror att det här är vad du vill, detta kommer att ge dig den elev som har högst poäng i varje ämne, om du vill ha ett visst ämne kan du ändra WHERE SubjectID=Subjects.SubjectID till 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)

I genomsnitt:

 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;

Här är en fungerande fiol för att se resultat av högsta poäng och genomsnitt.



  1. vad är flyktsekvensen för bindestreck (-) i PostgreSQL

  2. MySQL ger alla privilegier till databasen utom en tabell

  3. SQL Server 2016:Skapa en tabell från ett SQL-skript

  4. Välj från en tabell där inte i en annan