컴퓨터활용능력 1급 필기데이터베이스 일반GROUP BY와 HAVING난이도 2MCQ

컴퓨터활용능력 1급 필기 GROUP BY와 HAVING 기출문제 #21564

문제

다음 중 '대출' 테이블(회원번호, 도서번호, 대출일)에서 대출 건수가 3건 이상인 회원에 대해 회원번호와 대출 건수를 표시하는 SQL문으로 옳은 것은?

① SELECT 회원번호, COUNT() FROM 대출 WHERE COUNT() >= 3 GROUP BY 회원번호; ② SELECT 회원번호, SUM() FROM 대출 GROUP BY 회원번호 WHERE COUNT() >= 3; ③ SELECT 회원번호, COUNT() FROM 대출 GROUP BY 회원번호 HAVING COUNT() >= 3; ④ SELECT 회원번호, COUNT() FROM 대출 HAVING COUNT() >= 3 GROUP BY 회원번호;

정답

3

해설

정답: 3. 그룹별 집계 결과에 조건을 거는 절은 HAVING이며, GROUP BY 뒤에 와야 한다. 회원번호로 그룹을 묶고 그룹별 개수가 3 이상인 경우만 표시하므로 GROUP BY 회원번호 HAVING COUNT(*) >= 3 이 옳다.

오답 풀이

  • 1번: 집계 함수 조건을 WHERE에 쓸 수 없으므로 틀리다.
  • 2번: SUM(*) 표기가 잘못되었고 WHERE 위치도 틀리다.
  • 3번: GROUP BY 다음에 HAVING으로 집계 조건을 지정하므로 옳다.
  • 4번: HAVING이 GROUP BY보다 앞에 와서 구문 순서가 틀리다.

보충 개념 SQL 절 순서는 SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY이며, 그룹 집계 조건은 HAVING에 쓴다.

컴퓨터활용능력 1급 필기 데이터베이스 일반 다른 기출문제

컴퓨터활용능력 1급 필기 시험 준비 가이드

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

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