Course Content
Intermediate SQL
Intermediate SQL
Searching for the Top Math Students Challenge
The school is pleased with our work and agrees to continue the collaboration.
Now they have a new task for us. The top 10 students with the highest average grades will be offered a trip to a scientific center as a reward. One mandatory condition is receiving a grade above 90 on the math exam. To find such students, they have turned to you.
Let's see what we need to do using our employee
table as an example.
Suppose we need to find out in which departments there are employees who were hired before 2019 and the average salary in those departments. To implement such a task, we can use the following query:
SELECT department, AVG(salary) AS average_salary FROM employees WHERE hire_date < '2019-01-01' GROUP BY department
As you can see, there are only 3 such employees, and we used the necessary tools to achieve this result.
Swipe to show code editor
Your task is to retrieve up to 10 students with the highest average grade among all students who scored above or equal to 90 on the math exam.
Also, sort the result by the average_grade
column in the descending order.
Give an alias average_grade
to the average grade to ensure the task is successfully checked for correctness.
Brief Instructions
- Retrieve the
student_surname
column and the average of thegrade
column using theAVG()
function. - Assign the alias
average_grade
to the second column. - Apply a condition where
grade >= 90
andsubject_name = 'Mathematics'
. - Group the results by
student_surname
. - Sort the results by
average_grade
in descending order. - Use the
LIMIT
clause to return only 10 results.
Solution
Thanks for your feedback!
Searching for the Top Math Students Challenge
The school is pleased with our work and agrees to continue the collaboration.
Now they have a new task for us. The top 10 students with the highest average grades will be offered a trip to a scientific center as a reward. One mandatory condition is receiving a grade above 90 on the math exam. To find such students, they have turned to you.
Let's see what we need to do using our employee
table as an example.
Suppose we need to find out in which departments there are employees who were hired before 2019 and the average salary in those departments. To implement such a task, we can use the following query:
SELECT department, AVG(salary) AS average_salary FROM employees WHERE hire_date < '2019-01-01' GROUP BY department
As you can see, there are only 3 such employees, and we used the necessary tools to achieve this result.
Swipe to show code editor
Your task is to retrieve up to 10 students with the highest average grade among all students who scored above or equal to 90 on the math exam.
Also, sort the result by the average_grade
column in the descending order.
Give an alias average_grade
to the average grade to ensure the task is successfully checked for correctness.
Brief Instructions
- Retrieve the
student_surname
column and the average of thegrade
column using theAVG()
function. - Assign the alias
average_grade
to the second column. - Apply a condition where
grade >= 90
andsubject_name = 'Mathematics'
. - Group the results by
student_surname
. - Sort the results by
average_grade
in descending order. - Use the
LIMIT
clause to return only 10 results.
Solution
Thanks for your feedback!