문제
아래 ‘학과정보’ 테이블에 대한 SQL문의 실행 결과로 옳은 것은?
| 학과 | 인원 | 평균학점 | 담당교수 | 강의실 |
|---|---|---|---|---|
| 건축 | 40 | 3.5 | A | 201 |
| 교육 | 50 | 2.7 | B | 304 |
| 복지 | 30 | 4.1 | C | 107 |
| 경영 | 30 | 4.3 | D | 303 |
| 관광 | 40 | 3.3 | E | 402 |
SQLselect COUNT(*) from 학과정보 where 평균학점 > 3.5; select AVG(인원) from 학과정보 where 담당교수 NOT IN('A', 'D');
① 3, 40 ② 2, 40 ③ 3, 38 ④ 2, 38
정답
2번
해설
정답: 2. 평균학점이 3.5 초과인 행은 복지, 경영 2개이고, 담당교수가 A와 D가 아닌 행의 인원 평균은 (50+30+40)/3 = 40이다.
오답 풀이
- 1번: 평균학점 3.5는 초과 조건에 포함되지 않으므로 COUNT는 3이 아니다.
- 2번: COUNT는 2, AVG는 40으로 맞다.
- 3번: COUNT와 AVG가 모두 맞지 않는다.
- 4번: COUNT는 맞지만 AVG 계산이 틀렸다.
보충 개념
SQL에서 >는 초과 조건이므로 3.5와 같은 값은 제외된다.