다음 SQL의 실행 결과 행 수는?[연체기준]등급최소일최대일경고16정지… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 SQL의 실행 결과 행 수는?[연체기준]
| 등급 | 최소일 | 최대일 |
|---|---|---|
| 경고 | 1 | 6 |
| 정지 | 7 | 29 |
| 제명 | 30 | (null) |
[대출]
| 대출번호 | 연체일수 |
|---|---|
| L1 | 0 |
| L2 | 3 |
| L3 | 7 |
| L4 | 15 |
| L5 | 30 |
| L6 | 45 |
| L7 | (null) |
SELECT L.대출번호, G.등급
FROM 대출 L
JOIN 연체기준 G
ON L.연체일수 >= G.최소일
AND L.연체일수 <= G.최대일
ORDER BY L.대출번호;1
3
2
7
3
4
4
5
해설
범위 조건으로 결합하는 NON-EQUI 조인에서 L2 는 경고, L3·L4 는 정지와 맞아 결과는 3행이다.
제명의 최대일이 NULL 이라 30·45 와의 <= 비교가 UNKNOWN이 되어 L5·L6 이 빠지고, 연체일수가 0 인 L1 과 NULL 인 L7 도 맞는 등급이 없다.
- 5행은 NULL 상한을 상한 없음으로 보아 L5·L6 까지 넣은 값이다.
- 4행은 경계값 30 인 L5 만 최소일과 같아 결합된다고 본 값이다.
- 7행은 INNER 조인이 대출 행을 모두 남긴다고 오해한 값이다.
오류나 개정된 내용이 보이면 알려주세요