SQLDSQL 활용서브쿼리난이도 2MCQ

SQLD 서브쿼리 기출문제 #144

문제

다음 상관 서브쿼리를 비상관 서브쿼리로 변환한 것으로 가장 적절한 것은?

SQL
SELECT * FROM 사원 A WHERE 급여 > (SELECT AVG(급여) FROM 사원 B WHERE A.부서코드 = B.부서코드);

① SELECT * FROM 사원 WHERE 급여 > (SELECT AVG(급여) FROM 사원) ② SELECT A.* FROM 사원 A, (SELECT 부서코드, AVG(급여) AS 평균급여 FROM 사원 GROUP BY 부서코드) B WHERE A.부서코드 = B.부서코드 AND A.급여 > B.평균급여 ③ SELECT * FROM 사원 WHERE EXISTS (SELECT 1 FROM 사원 WHERE 급여 > AVG(급여)) ④ SELECT * FROM 사원 A WHERE 급여 IN (SELECT AVG(급여) FROM 사원 GROUP BY 부서코드)

정답

2

해설

② 부서별 평균급여를 미리 계산한 인라인뷰와 조인하여 비상관 서브쿼리로 변환. ① 전체 평균과 비교하므로 의미가 다름. ③ EXISTS 구문이 잘못되고 의미도 다름. ④ IN 사용으로 정확한 비교 불가능.

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

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

[SQLD] 서브쿼리 SQL 활용 기출 #144 | sqldpass