SQL Subquery

문국현·2024년 4월 24일

About Subquery

  • 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL 문을 말한다.
    메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다.

    • 서브쿼리는 메인쿼리의 칼럼 사용 가능
    • 메인쿼리는 서브쿼리의 칼럼 사용 불가

  • Subquery 는 괄호로 묶어서 사용
    단일 행 혹은 복수 행 비교 연산자와 함께 사용 가능
    subquery 에서는 order by 를 사용X

Subquery 종류

  • 스카라 서브쿼리 (Scalar Subquery) - SELECT 절에 사용
  • 인라인 뷰 (Inline View) - FROM 절에 사용
  • 중첩 서브쿼리 (Nested Subquery) - WHERE 절에 사용

SELECT 절에서 사용하는 서브쿼리. 결과는 하나의 Column 이어야 함

  • select column1, (select column2 from table2 where condition)
    from table1
    where condition;

  • 예제 : 서울은평경찰서의 강도 검거 건수와 서울시 경찰서 전체의 평균 강도 검거 건수를 조회

  • select case_number,
    (select avg(case_number)
    from crime_status
    where crime_type like '강도' and status_type like '검거')avg
    from crime_status
    where police_station like '은평' and crime_type like '강도' and status_type like '검거';

인라인 뷰 (Inline View)

  • FROM 절에 사용하는 서브쿼리. 메인쿼리에서는 인라인 뷰에서 조회한 Column 만 사용가능

select a.column, b.column
from table a, (select column1, column2 from table2) b
where condition;

  • 예제 : 경찰서 별로 가장 많이 발생한 범죄 건수와 범죄 유형을 조회

중첩 서브쿼리 (Nested Subquery)

  • WHERE 절에서 사용하는 서브쿼리.
  • Single Row - 하나의 열을 검색하는 서브쿼리
  • Multiple Row - 하나 이상의 열을 검색하는 서브쿼리
  • Multiple Column - 하나 이상의 행을 검색하는 서브쿼리

0개의 댓글