Oracle 기준으로 다음 SQL 의 결과로 옳은 것은?[대출]회원번호… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 5회
Oracle 기준으로 다음 SQL 의 결과로 옳은 것은?

[대출]

회원번호대출월
12
13
22
22
33
42
53

[연체]

회원번호
2
5
6
SELECT 회원번호 FROM 대출 WHERE 대출월 = 2
UNION
SELECT 회원번호 FROM 대출 WHERE 대출월 = 3
MINUS
SELECT 회원번호 FROM 연체
ORDER BY 1;
1
회원번호
1
2
3
4
2
회원번호
1
3
4
6
3
회원번호
1
1
3
4
4
회원번호
1
3
4
해설

Oracle 의 집합 연산자는 우선순위가 같아 위에서부터 차례로 처리되므로, 2월·3월 회원의 UNION {1,2,3,4,5} 에서 연체 회원 {2,5,6} 을 MINUS 한 {1,3,4} 가 결과이다.

UNION 단계에서 2월에 두 번 빌린 회원번호 2 와 두 달 모두 빌린 회원번호 1 은 한 행으로 합쳐지고, 연체에만 있는 6 은 차집합에 영향을 주지 않는다.

  • {1,2,3,4} 는 MINUS 를 먼저 계산해 3월 쪽에서만 연체 회원을 뺀 결과이다.
  • 회원번호 1 이 두 번 나온 표는 UNION 이 중복을 남긴다고 본 경우이다.
  • 6 이 포함된 표는 MINUS 를 양쪽 차이를 모두 남기는 연산으로 오해한 결과이다.

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

이어서 풀어보기

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