| | 49 | = Find the Average Progress Score for Each Course, and Compare It to Overall Average = |
| | 50 | |
| | 51 | {{{#!sql |
| | 52 | SELECT c.id_Course, s.name AS subject_name, |
| | 53 | AVG(sub.progress_score) AS course_avg_score, |
| | 54 | (SELECT AVG(progress_score) FROM Submission) AS overall_avg_score |
| | 55 | FROM Submission sub |
| | 56 | JOIN Enrollment e ON sub.id_student = e.id_student |
| | 57 | JOIN Course c ON e.id_Course = c.id_Course |
| | 58 | JOIN Subject_Course sc ON c.id_Course = sc.id_Course |
| | 59 | JOIN Subject s ON sc.id_subject = s.id_subject |
| | 60 | GROUP BY c.id_Course, s.name; |
| | 61 | }}} |
| | 62 | |
| | 63 | = Rank Professors by Subject Based on Average Rating = |
| | 64 | |
| | 65 | {{{#!sql |
| | 66 | SELECT |
| | 67 | t.id_teacher, |
| | 68 | u.username AS teacher_name, |
| | 69 | s.id_subject, |
| | 70 | s.name AS subject_name, |
| | 71 | AVG(r.rating) AS avg_rating, |
| | 72 | RANK() OVER (PARTITION BY s.id_subject ORDER BY AVG(r.rating) DESC) AS rank |
| | 73 | FROM Rating r |
| | 74 | JOIN Teacher t ON r.id_teacher = t.id_teacher |
| | 75 | JOIN User u ON t.id_user = u.id_user |
| | 76 | JOIN Course c ON t.id_teacher = c.created_by |
| | 77 | JOIN Subject_Course sc ON c.id_Course = sc.id_Course |
| | 78 | JOIN Subject s ON sc.id_subject = s.id_subject |
| | 79 | GROUP BY t.id_teacher, u.username, s.id_subject, s.name |
| | 80 | ORDER BY avg_rating DESC; |
| | 81 | }}} |
| | 82 | |
| | 83 | |
| | 84 | |