문제
다음 중 SELECT문에 대한 설명으로 옳지 않은 것은?
① FROM 절에는 SELECT 문에 나열된 필드를 포함하는 테이블이나 쿼리를 지정한다. ② 검색 결과에 중복되는 레코드를 없애기 위해서는 'DISTINCT' 조건자를 사용한다. ③ AS 문은 필드 이름이나 테이블 이름에 별명을 지정할 때 사용한다. ④ GROUP BY 문으로 레코드를 결합한 후에 WHERE 절을 사용하면 그룹화된 레코드 중 WHERE 절의 조건을 만족하는 모든 레코드가 표시된다.
정답
4번
해설
정답: 4. WHERE 절은 그룹화(GROUP BY) 이전에 개별 레코드를 거르는 데 사용된다. 그룹화 결과를 조건으로 거르려면 HAVING 절을 써야 한다.
오답 풀이
- 1번: FROM 절에 대상 테이블·쿼리를 지정하므로 옳다.
- 2번: DISTINCT로 중복 레코드를 제거하므로 옳다.
- 3번: AS로 필드·테이블에 별칭을 지정하므로 옳다.
- 4번: 그룹화 이후 조건은 HAVING으로 처리하며 WHERE는 그룹화 전 단계이므로 옳지 않다.
보충 개념 SQL 실행 순서: FROM → WHERE(행 필터) → GROUP BY → HAVING(그룹 필터) → SELECT → ORDER BY. 집계 조건은 HAVING에 둔다.