문제
다음 SQL 실행 결과에서 오류가 발생하는 이유로 가장 적절한 것은?
SQLSELECT department, COUNT(*) as cnt FROM employees WHERE COUNT(*) > 5 GROUP BY department;
① WHERE절에서는 집계함수를 사용할 수 없기 때문 ② GROUP BY절이 WHERE절보다 뒤에 위치해야 하기 때문 ③ COUNT(*) 함수의 별칭이 중복되어 사용되었기 때문 ④ SELECT절과 WHERE절에서 동일한 집계함수를 사용했기 때문
정답
1번
해설
WHERE절은 그룹화 이전에 개별 행에 대한 조건을 적용하므로 집계함수를 사용할 수 없다. 그룹화 후 집계 결과에 조건을 적용하려면 HAVING절을 사용해야 한다. GROUP BY 위치, 별칭 중복, 집계함수 중복 사용은 이 경우와 무관하다.