문제
다음 SQL의 실행 결과로 반환되는 행의 개수는?
SQL-- 테이블 데이터 -- sales: dept_id(10,10,20,20,30), amount(100,200,300,400,500) SELECT dept_id, COUNT(*) as cnt FROM sales WHERE amount >= 200 GROUP BY dept_id HAVING COUNT(*) > 1;
① 0행
② 1행
③ 2행
④ 3행
정답
2번
해설
WHERE amount >= 200 조건으로 (10,200), (20,300), (20,400), (30,500) 4건이 필터링됩니다. GROUP BY dept_id로 그룹화하면: dept_id=10(1건), dept_id=20(2건), dept_id=30(1건)이 됩니다. HAVING COUNT(*) > 1 조건에 의해 dept_id=20 그룹만 남으므로 1행이 반환됩니다.