[Oracle](Leet_Code)1280. Students and Examinations

이경영·2023년 8월 21일
0

오라클

목록 보기
40/43




문제해설
student가 참석한 과목의 이름과 참석한 과목의 횟수를 구해야함.

처음에 세 테이블을 outer join 시키려고 했으나,
subject_name이 없는, Bob의 Physics같은 경우에는 참석하지 않아서 0이 나오지 않았다

그러므로 student와 subject의 Cross join을 사용해서 모든 subject_name이 나오게 해야했다.

정답

select a.student_id, a.student_name, b.subject_name, count(c.subject_name) as attended_exams
      from Students a cross join Subjects b
      left join Examinations c
      on a.student_id = c.student_id
      and b.subject_name=c.subject_name
group by a.student_id, a.student_name, b.subject_name
order by a.student_id, b.subject_name
profile
꾸준히

0개의 댓글