문제
부서별 제품별 영업 실적을 관리하는 테이블에서 부서별로 영업 실적이 1억원 이상인 제품의 합계를 구하고자 한다. 다음 중 이를 위한 SQL문에서 반드시 사용해야 할 구문에 해당하지 않는 것은?
① SELECT 문 ② GROUP BY 절 ③ HAVING 절 ④ ORDER BY 절
정답
4번
해설
정답: 4. ORDER BY는 결과를 정렬하는 선택적 구문으로, 합계 산출 자체에는 필요하지 않다. 부서별 그룹 합계와 1억원 이상 조건만 구하면 되므로 반드시 사용할 필요는 없다.
오답 풀이
- 1번: 데이터를 조회하려면 SELECT 문이 반드시 필요하므로 사용해야 한다.
- 2번: 부서별로 묶어 집계하려면 GROUP BY가 필요하므로 사용해야 한다.
- 3번: 그룹 집계 결과에 '1억원 이상' 조건을 거는 데 HAVING이 필요하므로 사용해야 한다.
- 4번: ORDER BY는 정렬용 선택 구문이라 반드시 사용할 필요가 없으므로 정답이다.
보충 개념 WHERE는 그룹화 전 개별 행을, HAVING은 그룹화 후 집계 결과를 거른다. ORDER BY는 최종 결과 정렬에만 쓰이는 선택 절이다.