커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
subquery 문을 달리 작성해 봤는데, 결과에서 차이가 납니다. 어떤 이유인지 잘 모르겠습니다.
[왕초보] 엑셀보다 쉬운, SQL
4주차
북마크
이*섭
댓글
17
추천
0
조회수
54
조회수
54
답변 완료


4주차 강의 03.subquery 연습해보기 에 11) 문제에서 정답 코드를 확인하였고,

같은 결과를 얻기 위해 다른 방식으로 SQL을 작성해보았는데, 나온 결과 값에 차이가 있습니다.

어디서 차이가 발생한 것인지 즉, 제가 짠 SQL은 왜 틀린 것인지 모르겠어서 문의드립니다.


정답의 경우 각 subquery 에 대하여 count 후 inner join 한 것이고,

저의 경우, join(테이블 특성 상 orders 로 outer join) 에 대한 결과를 subquery 로 count 했다고 생각합니다.


정답 코드)

select a.course_id, b.cnt_checkins, a.cnt_total from

(

select course_id, count(distinct(user_id)) as cnt_total from orders

group by course_id

) a

inner join (

select course_id, count(distinct(user_id)) as cnt_checkins from checkins

group by course_id

) b

on a.course_id = b.course_id;


나의 코드)

select table1.course_id, count(DISTINCT(table1.c_user_id)) as cnt_checkins, count(DISTINCT(table1.user_id)) as cnt_total

from (

select o.user_id, o.course_id, c.user_id as c_user_id

from orders o

left outer join

checkins c

on o.user_id = c.user_id

) as table1

group by table1.course_id

order by table1.course_id desc;


정답 결과)

스파르타 즉문즉답


나의 결과)

스파르타 즉문즉답




오류는 발생하지 않았습니다.


취소
 공유
취소
댓글 0
댓글 알림
나의얼굴