← 회차 전체 문제정처LAB 자체 제작내용 검수 완료정처LAB 정보처리기사 필기 자체 제작 3회 · 데이터베이스 구축 · GROUP BY · 53번
다음 SQL이 논리적으로 처리되는 순서로 옳은 것은?
SELECT customer_id, COUNT(*) AS cnt
FROM orders
WHERE status = 'PAID'
GROUP BY customer_id
HAVING COUNT(*) >= 5
ORDER BY cnt DESC;
- 1
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
정답 근거FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY의 논리 순서를 정확히 나타낸다. - 2
SELECT → FROM → ORDER BY → WHERE → GROUP BY → HAVING
오답 이유SELECT와 ORDER BY는 원본 행 제한·그룹화가 끝난 뒤 처리되므로 앞에 올 수 없다. - 3
FROM → GROUP BY → WHERE → SELECT → HAVING → ORDER BY
오답 이유WHERE는 그룹을 만들기 전에 원본 행을 제한하므로 GROUP BY 뒤에 둘 수 없다. - 4
WHERE → FROM → SELECT → GROUP BY → ORDER BY → HAVING
오답 이유FROM이 행 집합을 만들기 전에 WHERE를 적용할 수 없고 HAVING은 GROUP BY 뒤에 처리된다.
정답·상세해설정답 1번
논리적 처리에서는 FROM으로 원본 행 집합을 만들고 WHERE가 결제 완료 행을 제한한다. GROUP BY로 고객별 그룹을 만든 뒤 HAVING이 5건 이상 그룹만 남기고, SELECT가 출력 열을 계산한 다음 ORDER BY가 정렬한다. 따라서 ①이다.
콘텐츠 기록콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 최종 검수
- 2026-08-16