정보처리기사 실기SQLSQL - GROUP BY / HAVING난이도 3SHORT_ANSWER

정보처리기사 실기 SQL - GROUP BY / HAVING 기출문제 #11124

문제

다음 조건을 만족하면서, 과목별 점수의 평균이 90이상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오.

  • 대소문자를 구분하지 않는다.
  • WHERE 구문을 사용하지 않는다.
  • GROUP BY, HAVING 구문을 반드시 사용한다.
  • 세미콜론(;)은 생략 가능하다.
  • 별칭(AS)을 사용해야 한다.

[성적]

과목코드과목이름학점점수
1000컴퓨터과학A+95
2000운영체제B+85
1000컴퓨터과학B+85
2000운영체제B80

[결과]

과목이름최소점수최대점수
컴퓨터과학8595

정답

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;

해설

과목이름으로 그룹화(GROUP BY)한 뒤, 그룹별 집계 조건은 WHERE가 아닌 HAVING 절로 지정한다. HAVING AVG(점수) >= 90으로 평균이 90 이상인 과목만 남기고, MIN·MAX 집계함수에 AS 별칭을 붙여 최소점수·최대점수를 출력한다. 컴퓨터과학의 평균은 (95+85)/2=90이므로 결과에 포함된다.

정보처리기사 실기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[정보처리기사 실기] SQL - GROUP BY / HAVING SQL 기출 #11124 | 문어CBT