-- EXERCISE 1
SELECT first_name, title, grade
FROM students
INNER JOIN papers
ON students.id = papers.student_id
ORDER BY grade DESC;
-- ALT SOLUTION
SELECT first_name, title, grade
FROM students
RIGHT JOIN papers
ON students.id = papers.student_id
ORDER BY grade DESC;
-- PROBLEM 2
SELECT first_name, title, grade
FROM students
LEFT JOIN papers
ON students.id = papers.student_id;
-- PROBLEM 3
SELECT
first_name,
IFNULL(title, 'MISSING'),
IFNULL(grade, 0)
FROM students
LEFT JOIN papers
ON students.id = papers.student_id;
-- PROBLEM 4
SELECT
first_name,
IFNULL(AVG(grade), 0) AS average
FROM students
LEFT JOIN papers
ON students.id = papers.student_id
GROUP BY students.id
ORDER BY average DESC;
-- PROBLEM 5
SELECT first_name,
Ifnull(Avg(grade), 0) AS average,
CASE
WHEN Avg(grade) IS NULL THEN 'FAILING'
WHEN Avg(grade) >= 75 THEN 'PASSING'
ELSE 'FAILING'
end AS passing_status
FROM students
LEFT JOIN papers
ON students.id = papers.student_id
GROUP BY students.id
ORDER BY average DESC;