다음 SQL을 실행했을 때 결과 행 수와, 그중 주문번호가 NULL인 … | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 1회
다음 SQL을 실행했을 때 결과 행 수와, 그중 주문번호가 NULL인 행의 수를 순서대로 나열한 것은?

[고객]

고객번호고객명
1김하늘
2박도윤
3이서준
4최유나

[주문]

주문번호고객번호금액상태
101130000완료
102115000취소
103220000취소
104312000완료
10538000완료
106(null)5000완료
SELECT C.고객명, O.주문번호
  FROM 고객 C LEFT OUTER JOIN 주문 O
    ON C.고객번호 = O.고객번호
   AND O.상태 = '완료'
 ORDER BY C.고객명, O.주문번호;
1
3, 0
2
4, 1
3
5, 2
4
6, 1
해설

ON 절의 상태 조건은 조인 매칭 조건으로만 쓰이므로, 완료 주문이 없는 고객도 LEFT OUTER JOIN에 의해 주문번호 NULL 행으로 남아 5행이 된다.

김하늘 101, 이서준 104·105가 매칭되고 취소 주문만 있는 박도윤과 주문이 없는 최유나는 NULL 로 1행씩 보존된다. 고객번호가 NULL 인 106 주문은 기준 테이블에 짝이 없어 나오지 않는다.

  • 상태 조건을 WHERE 절에 둔 경우라야 NULL 행이 걸러져 3행이 된다.
  • 상태 조건을 무시하면 취소 주문까지 붙어 6행이 된다.
  • 박도윤을 빼는 것은 매칭 실패 행을 보존하는 외부 조인 규칙에 어긋난다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 1회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기