SQLDSQL 활용난이도 2MCQ

SQLD SQL 활용 기출문제 #1389

문제

다음 두 SQL의 결과 차이점으로 가장 적절한 것은?

SQL
-- SQL 1 SELECT department_id, COUNT(*) as emp_count FROM employees WHERE salary > 50000 GROUP BY department_id; -- SQL 2 SELECT department_id, COUNT(*) as emp_count FROM employees GROUP BY department_id HAVING AVG(salary) > 50000;

① 두 SQL은 항상 동일한 결과를 반환한다 ② SQL 1은 개별 직원의 급여 조건을 먼저 필터링하고, SQL 2는 부서별 평균 급여 조건으로 그룹을 필터링한다 ③ SQL 1은 HAVING 절이 없어서 오류가 발생한다 ④ SQL 2는 WHERE 절이 없어서 모든 직원을 대상으로 하지 않는다

정답

2

해설

SQL 1은 WHERE 절로 급여가 50000 초과인 직원들만 먼저 필터링한 후 부서별로 그룹화하여 해당 직원 수를 센 것입니다. SQL 2는 모든 직원을 부서별로 그룹화한 후 HAVING 절로 부서 평균 급여가 50000 초과인 그룹만 필터링합니다. 따라서 필터링 기준과 시점이 완전히 다릅니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] SQL 활용 기출 #1389 | sqldpass