1280. Students and Examinations
문제를 풀이하는 방식을 잘못이해했다.
시험을 친 부분에 대해서만 카운트하면 된다고 생각했는데,
예시에는 모든 경우의 수가 필요했다.
모든 경우의 수에 대한 컬럼을 만들고, 시험을 치지 않은 경우에는 0으로 카운트하는 방식으로 풀어야했다.

때문에 LEFT JOIN을 한 나와 달리 대부분의 사람들이 CROSS JOIN으로 문제를 풀었는데,

크로스 조인이 뭔데.. 상태가 되어서 기록한다.
알고보니 단순 조인이었다.
단순 조인보다 CROSS JOIN이 더 직관적인 듯하긴한다.
모든 컬럼간의 Cartesian Product 카테시안 곱(집합)을 만들어내는데,
위의 문제는 사진처럼 common column이 없기 때문에 모든 경우의 수를 만들어내는 cross join을 사용하는것이 합리적인 방법인듯 했다.
SELECT s.student_id, s.student_name, sub.subject_name, COUNT(e.subject_name) AS attended_exams
FROM Students s
CROSS JOIN Subjects sub
LEFT JOIN Examinations 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;