커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
left join과 inner join 사용의 차이, group by 질문드립니다.
[왕초보] 엑셀보다 쉬운, SQL
3주차
북마크
임*훈
댓글
5
추천
2
조회수
114
조회수
114
답변 완료


안녕하세요!

SQL반 3주차-7 강의에서 맨 마지막 숙제를 하던 중 질문이 생겼습니다.

우선 숙제는 "enrolled_id별 수강완료(done=1)한 강의 갯수를 세어보고, 완료한 강의 수가 많은 순서대로 정렬해보기.

user_id도 같이 출력되어야한다." 이구요


아래에 정답 코드와 출력결과 캡쳐화면이 있습니다.

select e.enrolled_id, 

       e.user_id, 

       count(*) as cnt 

       from enrolleds e

inner join enrolleds_detail ed on e.enrolled_id = ed.enrolled_id

where ed.done = 1

group by e.enrolled_id, e.user_id

order by cnt desc
스파르타 즉문즉답


#1. inner join을 left join으로 바꿔도 동일한 결과가 출력되는 것으로 보이는데, 이 문제에서는 왜 inner join이 사용되었는지 궁금합니다.


#2. 아래 코드와 같이 group by에 e.enrolled_id만 쓰고 e.user_id를 빼도 동일한 결과가 출력됩니다.

이 경우, e.user_id는 group by를 안해줘도 되는 건지, 아니면 원리원칙상 group by를 해주는 게 맞는 건지 궁금합니다.

select e.enrolled_id, 

       e.user_id, 

       count(*) as cnt 

       from enrolleds e

left join enrolleds_detail ed on e.enrolled_id = ed.enrolled_id

where ed.done = 1

group by e.enrolled_id

order by cnt desc
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴