Home > Software design >  SQL Query to find student with Highest Grade in all courses
SQL Query to find student with Highest Grade in all courses

Time:01-25

My tables are the following, what query do I use to find the student with highest grade (A) in all courses?

CREATE TABLE Student (
    Email VARCHAR(50) PRIMARY KEY, 
    Name VARCHAR(50) NOT NULL
);

CREATE TABLE Course (
    Name VARCHAR(50) PRIMARY KEY,
    StartDate DATE NOT NULL,
    EndDate DATE NOT NULL,
    TeacherEmail VARCHAR(50),
    FOREIGN KEY (TeacherEmail) REFERENCES Teacher(Email)
);

CREATE TABLE Grade (
    StudentEmail VARCHAR(50) NOT NULL,
    CourseName VARCHAR(50) NOT NULL,
    Grade VARCHAR(2) NOT NULL,
    FOREIGN KEY (StudentEmail) REFERENCES Student(Email),
    FOREIGN KEY (CourseName) REFERENCES Course(Name)
);

CodePudding user response:

You can try this:

SELECT s.Name, g.Grade FROM Student s
LEFT JOIN Grade g ON s.email = g.StudentMail
WHERE g.Grade = 'A'

CodePudding user response:

    SELECT MAX(Grade) AS HighestGrade FROM Grade;
  •  Tags:  
  • Related