[sql] ALL 서브쿼리
서브쿼리(Subquery)는 SQL 문장 안에 포함된 또 다른 SQL 문장으로, 주로 다른 쿼리의 결과에 따라 동적으로 쿼리를 작성해야 할 때 사용됩니다.
주요 기능
서브쿼리를 사용하면 다음과 같은 작업을 수행할 수 있습니다:
- 조건절 내에 사용: WHERE, HAVING, JOIN 등의 조건절 안에서 다른 테이블의 데이터에 대한 비교 연산을 수행할 수 있습니다.
- 결과 집합의 데이터 조작: SELECT 문장 안에서 서브쿼리 결과를 활용하여 데이터를 보다 동적으로 처리할 수 있습니다.
- 나눔 기법: 모든 데이터를 임시로 분할하여 처리할 때 사용됩니다.
종류
서브쿼리에는 다음과 같이 여러 종류가 있습니다:
- 스칼라 서브쿼리(Scalar Subquery): 단일 값을 반환하는 서브쿼리로, 주로 조건절에서의 비교 또는 연산에 사용됩니다.
- 인라인 뷰(Inline View): FROM 절에서 서브쿼리를 사용하여 임시로 새로운 가상 테이블을 만듭니다.
- 코랄레이티드 서브쿼리(Correlated Subquery): 바깥 쿼리의 컬럼 값을 참조하는 서브쿼리로, 각 로우에 독립적으로 실행되는 것이 아니라 바깥 쿼리의 로우에 의해 반복적으로 실행됩니다.
서브쿼리는 SQL 문장을 보다 유연하고 동적으로 만들어주는 강력한 도구입니다.
예제
스칼라 서브쿼리를 사용하여 주문량이 평균 주문량을 초과하는 제품을 확인하는 쿼리:
SELECT product_name
FROM products
WHERE quantity > (SELECT AVG(quantity) FROM orders);
참고 자료
서브쿼리는 실제 데이터를 다루는데 있어 매우 유용한 기능으로, 적재적소에 적절하게 활용하면 데이터 처리에 있어 보다 효율적인 작업을 수행할 수 있습니다.