다음 SQL을 실행한 결과로 옳은 것은?[고객]고객번호고객명누적금액1가… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 1회
다음 SQL을 실행한 결과로 옳은 것은?

[고객]

고객번호고객명누적금액
1가람50000
2나무100000
3다솜299999
4라온300000
5마음(null)
6보람1200000

[등급]

등급명하한상한
일반0100000
실버100000300000
골드3000001000000
SELECT C.고객명, G.등급명
  FROM 고객 C
  JOIN 등급 G
    ON C.누적금액 BETWEEN G.하한 AND G.상한
 ORDER BY C.고객번호, G.하한;
1
고객명등급명
가람일반
나무실버
다솜실버
라온골드
2
고객명등급명
가람일반
나무일반
나무실버
다솜실버
라온실버
라온골드
3
고객명등급명
가람일반
나무일반
다솜실버
라온실버
4
고객명등급명
가람일반
나무일반
나무실버
다솜실버
라온실버
라온골드
마음(null)
보람(null)
해설

비등가 조인(Non-Equi Join)은 BETWEEN 조건을 만족하는 등급마다 행을 만들므로, 경계값 100000과 300000은 두 등급에 동시에 걸려 각각 2행이 된다.

50000·299999는 1행씩이고, 누적금액이 NULL인 마음과 범위를 벗어난 보람은 조건이 참이 아니어서 빠지므로 2+2+1+1=6행이다.

  • 나무를 실버에만 둔 표는 BETWEEN이 하한만 포함한다고 보았다.
  • 라온을 실버에만 둔 표는 BETWEEN이 상한만 포함한다고 보았다.
  • 마음·보람이 있는 표는 OUTER JOIN처럼 짝 없는 행을 남겼다.

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

이어서 풀어보기

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