MS Access의 데이터베이스를 이용한 성적 테이블에서 적어도 2명 … | [계리직 컴퓨터일반] 08년 1회차 기출문제 상세 페이지
1[계리직 컴퓨터일반] 08년 1회차
MS Access의 데이터베이스를 이용한 성적 테이블에서 적어도 2명 이상이 수강하는 과목에 대해 등록한 학생수와 평균점수를 구하기 위한 SQL 질의문을 작성할 경우 빈칸에 적절한 표현은?<테이블명 : 성적>
| 학번 | 과목 | 성적 | 점수 |
|---|---|---|---|
| 100 | 자료구조 | A | 90 |
| 100 | 운영체제 | A | 95 |
| 200 | 운영체제 | B | 85 |
| 300 | 프로그래밍 | A | 90 |
| 300 | 데이터베이스 | C | 75 |
| 300 | 자료구조 | A | 95 |
SELECT 과목, COUNT(*) AS 학생수, AVG(점수) AS 평균점수
FROM 성적
GROUP BY 과목 ________
1
WHERE SUM(학번) >= 2
2
WHERE COUNT(학번) >= 2
3
HAVING SUM(학번) >= 2
4
HAVING COUNT(학번) >= 2
해설
그룹화한 결과에 조건을 거는 절은 HAVING이고, 수강 인원은 COUNT(학번)으로 센다.
GROUP BY 과목으로 묶은 뒤 HAVING COUNT(학번) >= 2 를 붙이면 2명이 수강한 자료구조·운영체제만 학생수와 평균점수가 출력된다.
- WHERE COUNT(학번) >= 2: WHERE 는 그룹화 전 개별 행을 거르는 절이라 집계 함수를 조건으로 쓸 수 없다.
- WHERE SUM(학번) >= 2: WHERE 에 집계 함수를 쓸 수 없고, 학번의 합계는 인원 수와도 무관하다.
- HAVING SUM(학번) >= 2: 절은 맞지만 SUM 은 학번 값을 더할 뿐 학생 수를 세지 못한다.
오류나 개정된 내용이 보이면 알려주세요