학습 자료

SELECT 절의 서브쿼리

SELECT 절의 서브쿼리는 각 행에 계산된 값을 추가할 때 사용합니다. 예를 들어 개수, 합계, 조회(lookup) 결과 등을 구할 수 있습니다.

이 서브쿼리는 바깥(외부) 쿼리의 각 행마다 한 번씩 실행되며, 반드시 정확히 하나의 값(스칼라)을 반환해야 합니다.


문법

SELECT 절에서의 서브쿼리는 다음과 같이 작성합니다.

SELECT 절의 서브쿼리
SELECT column1, (SELECT some_value FROM another_table WHERE ...) AS new_column FROM main_table;

예시: 사용자별 수강한 코스 총합

다음 쿼리는 각 사용자가 선택한 코스(강의) 수를 반환합니다.

SELECT 절의 서브쿼리 예시
SELECT u.name, ( SELECT COUNT(*) FROM user_courses uc WHERE uc.user_id = u.user_id ) AS course_count FROM users u;

출력:

namecourse_count
Sofia2
Ethan1
Aisha2
Noah1
Liam3

이 쿼리는 user_courses 테이블에서 각 사용자가 가진 행(코스 선택 기록)의 개수를 셉니다.


왜 유용할까요?

다음과 같은 상황에서 SELECT 절의 서브쿼리를 사용하세요.

  • 추가 계산된 컬럼을 붙이고 싶을 때
  • 일회성 지표를 위해 Join을 피하고 싶을 때
  • 리포팅 로직을 한 곳에 모아두고 싶을 때

참고 사항

  • 각 서브쿼리는 반드시 값 하나만 반환해야 합니다. 그렇지 않으면 SQL 오류가 발생합니다.
  • 빠른 요약에 유용하지만, 큰 데이터셋에서는 Join이 더 효율적인 경우가 많습니다.
  • COUNT, SUM, AVG는 물론, 서브쿼리 안에 또 다른 서브쿼리를 중첩해서 사용할 수도 있습니다.
Quiz
0 / 1

SELECT 절의 서브쿼리는 각 행에 대해 여러 값을 반환할 수 있다.

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

DB 테이블 구조

실행 결과