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

정보처리기사 실기 SQL - GROUP BY / HAVING / 집계함수 기출문제 #11292

문제

다음 성적 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. [조건]을 참고하여 적합한 SQL문을 작성하시오.

[성적]

순번과목이름점수
1데이터베이스89
2데이터베이스92
3네트워크88
4소프트웨어91
5네트워크89
6소프트웨어85

[결과]

과목이름최소점수최대점수
데이터베이스8992

[조건]

  • WHERE를 사용하지 말아야 한다.
  • SELECT절에 별칭을 사용하여 작성해야 한다.
  • SQL 구문 마지막에 세미콜론 생략 가능하다.
  • 반드시 GROUP BY와 HAVING을 사용해야 한다.
  • 집계함수를 사용해야 한다.

정답

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 한 뒤 그룹별 조건은 HAVING 으로 거른다. MIN(점수), MAX(점수) 집계함수로 최소/최대 점수를 구하고 별칭을 붙이며, 평균 90 이상 조건은 HAVING AVG(점수) >= 90 으로 작성한다. WHERE 는 그룹 조건에 쓸 수 없으므로 사용하지 않는다.

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

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

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

[정보처리기사 실기] SQL - GROUP BY / HAVING / 집계함수 SQL 기출 #11292 | 문어CBT