SQLD › 🤖 [예시문제] (2026-08-15)

7. [예시문제] 다음 SQL 서브쿼리에 대한 설명 중 그 종류와 사용 예시가 바르게 연결된 것은? ① 스칼라 서브쿼리: SELECT emp_name FROM employees WHERE emp_id IN (SELECT emp_id FROM dept_a_employees); ② 단일행 서브쿼리: SELECT emp_name, (SELECT dept_name FROM departments WHERE dept_id = e.dept_id) FROM employees e; ③ 다중행 서브쿼리: SELECT emp_name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees); ④ 연관 서브쿼리: SELECT emp_name FROM employees e WHERE e.dept_id = (SELECT dept_id FROM departments d WHERE d.dept_name = 'Sales');

  1. ①
  2. ②
  3. ③
  4. ④

정답: 2번

2번 보기가 바르게 연결되었습니다. 'SELECT emp_name, (SELECT dept_name FROM departments WHERE dept_id = e.dept_id) FROM employees e;' 구문에서 괄호 안의 서브쿼리는 메인 쿼리의 각 행에 대해 단 하나의 값을 반환하므로 스칼라 서브쿼리입니다. ①번은 'IN' 연산자와 사용되어 여러 행의 결과를 반환할 수 있으므로 다중행 서브쿼리입니다. ③번은 AVG(salary)와 같이 집계 함수의 결과로 단일 값을 반환하므로 단일행 서브쿼리입니다. ④번의 서브쿼리는 메인 쿼리의 테이블(employees e)과 아무런 연관 없이 독립적으로 실행되어 단일 값을 반환하므로 연관 서브쿼리가 아닌 단일행 서브쿼리입니다. 연관 서브쿼리는 서브쿼리가 메인 쿼리 컬럼을 참조하여 메인 쿼리의 각 행마다 실행됩니다.