문제
다음 중 주어진 [학생] 테이블을 참조하여 아래의 SQL문을 실행한 결과로 옳은 것은?
| 학번 | 전공 | 학년 | 나이 |
|---|---|---|---|
| 100 | 국사 | 4 | 21 |
| 150 | 회계 | 2 | 19 |
| 200 | 수학 | 3 | 30 |
| 250 | 국사 | 3 | 31 |
| 300 | 회계 | 4 | 25 |
| 350 | 수학 | 2 | 19 |
| 400 | 국사 | 1 | 23 |
① 25 ② 23 ③ 21 ④ 19
정답
1번
해설
정답: 1. WHERE 전공 NOT IN ('수학','회계')는 전공이 수학·회계가 아닌 행, 즉 전공이 '국사'인 학번 100·250·400만 선택한다. 이들의 나이는 21·31·23이고 평균은 (21+31+23)/3 = 75/3 = 25이다.
오답 풀이
- 1번: 국사 전공 3명의 나이 평균 25이므로 옳다.
- 2번: 23은 학번 400 한 명의 나이일 뿐 평균이 아니다.
- 3번: 21은 학번 100 한 명의 나이일 뿐 평균이 아니다.
- 4번: 19는 제외된 회계·수학 전공자의 나이이므로 답이 아니다.
보충 개념 NOT IN은 목록에 포함되지 않는 행만 선택하고, AVG는 NULL을 제외한 값들의 산술 평균을 계산한다.