다음 중 주어진 [학생] 테이블을 참조하여 아래의 SQL문을 실행한 결… | [컴퓨터활용능력 1급 필기] 20년 2회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 20년 2회차
다음 중 주어진 [학생] 테이블을 참조하여 아래의 SQL문을 실행한 결과로 옳은 것은?SELECT AVG(나이) FROM 학생
WHERE 전공 NOT IN ('수학', '회계');[학생] 테이블
| 학번 | 전공 | 학년 | 나이 |
|---|---|---|---|
| 100 | 국사 | 4 | 21 |
| 150 | 회계 | 2 | 19 |
| 200 | 수학 | 3 | 30 |
| 250 | 국사 | 3 | 31 |
| 300 | 회계 | 4 | 25 |
| 350 | 수학 | 2 | 19 |
| 400 | 국사 | 1 | 23 |
1
25
2
23
3
21
4
19
해설
NOT IN ('수학', '회계') 조건은 전공이 수학도 회계도 아닌 레코드만 남긴다. [학생] 테이블에서 남는 것은 전공이 국사인 세 명, 즉 학번 100(나이 21), 250(나이 31), 400(나이 23)이다.
여기에 AVG(나이)를 적용하면 (21 + 31 + 23) ÷ 3 = 75 ÷ 3 = 25가 된다.
전공이 회계인 19·25와 수학인 30·19는 조건에서 걸러지므로 평균 계산에 들어가지 않는다. 7명 전체의 평균이나 제외 대상 나이를 섞어 계산하면 다른 값이 나오므로, WHERE 절로 남는 행을 먼저 확정한 뒤 집계 함수를 적용해야 한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.