https://leetcode.com/problems/students-and-examinations/description/ | Easy |
---|
Даны три таблицы:
Table: Students
Column Name | Type |
---|---|
student_id | int |
student_name | varchar |
student_id — первичный ключ.
Каждая строка содержит ID и имя студента.
Table: Subjects
Column Name | Type |
---|---|
subject_name | varchar |
subject_name — первичный ключ.
Каждая строка содержит название одного предмета.
Table: Examinations
Column Name | Type |
---|---|
student_id | int |
subject_name | varchar |
У этой таблицы нет первичного ключа. Каждая строка означает, что студент с данным student_id
сдавал экзамен по предмету subject_name
.
Напишите SQL-запрос, который для каждого студента и каждого предмета вычисляет число посещённых экзаменов. Упорядочить результат по student_id
и subject_name
.
SELECT
s.student_id,
s.student_name,
sub.subject_name,
COUNT(e.student_id) AS attended_exams
FROM Students AS s
CROSS JOIN Subjects AS sub
LEFT JOIN Examinations AS e
ON s.student_id = e.student_id
AND sub.subject_name = e.subject_name
GROUP BY
s.student_id,
s.student_name,
sub.subject_name
ORDER BY
s.student_id,
sub.subject_name;