[sql] 다중 행 서브쿼리

다중 행 서브쿼리는 서브쿼리의 결과 집합이 한 개 이상의 행을 반환하는 것을 말합니다. 이를 활용하면 한 테이블의 여러 행 레코드를 기준으로 서브쿼리를 실행할 수 있습니다.

다중 행 서브쿼리 사용 예시

아래는 사원 테이블에서 각 부서별 최고 급여자를 조회하는 다중 행 서브쿼리의 예시입니다.

SELECT department_id, last_name, salary
FROM employees e
WHERE salary = (SELECT MAX(salary) FROM employees WHERE department_id = e.department_id);

위 쿼리에서, 서브쿼리는 각 부서의 최고 급여를 반환하며, 외부 쿼리는 해당 부서의 사원들 중에서 최고 급여를 받는 사원의 정보를 반환합니다.

다중 행 서브쿼리는 복잡한 비즈니스 요구 사항을 해결하는 데 유용합니다.

결과 집합 처리

다중 행 서브쿼리의 결과 집합을 비교하기 위해서는 IN, ANY, ALL 등의 연산자를 사용할 수 있습니다.

다중 행 서브쿼리를 사용할 때는 결과 집합이 여러 행을 반환할 수 있음을 염두해 두고, 이에 따른 결과 집합 처리 방법을 고려해야 합니다.


위와 같이, 다중 행 서브쿼리는 많은 사용 사례에서 매우 유용하며, 데이터베이스 쿼리 작성의 다양한 상황에서의 유연한 활용이 가능합니다.

References: