문제
다음 [점수] 테이블에서 SQL문을 실행한 결과로 출력되는 학번을 모두 쓰시오 (콤마로 구분).
| 학번 | 과목 | 점수 |
|---|---|---|
| 101 | 수학 | 80 |
| 102 | 수학 | 90 |
| 103 | 영어 | 70 |
| 104 | 영어 | 85 |
SQLSELECT 학번 FROM 점수 s1 WHERE 점수 < (SELECT MIN(점수) FROM 점수 s2 WHERE s2.과목 = s1.과목) + 15;
정답
101, 102, 103
101, 102, 103101,102,103103, 102, 101103,102,101102, 101, 103102,101,103101, 103, 102101,103,102102, 103, 101102,103,101103, 101, 102103,101,102
해설
-
상관 서브쿼리로 과목별 최솟값을 구합니다:
- 수학 과목: MIN(80, 90) = 80
- 영어 과목: MIN(70, 85) = 70
-
각 행에 대해 조건을 확인합니다:
- 101(수학, 80): 80 < 80+15(95) → 참
- 102(수학, 90): 90 < 80+15(95) → 참
- 103(영어, 70): 70 < 70+15(85) → 참
- 104(영어, 85): 85 < 70+15(85) → 거짓
-
따라서 조건을 만족하는 학번은 101, 102, 103입니다.