SELECT 절의 서브쿼리
SELECT
절에서 서브쿼리를 사용하면 각 행에 대해 계산된 값을 동적으로 추가할 수 있습니다.
예를 들어, 합계, 개수, 특정 조건에 따른 조회 값을 컬럼처럼 붙일 수 있습니다.
서브쿼리는 외부 쿼리의 각 행마다 한 번씩 실행되며, 단일 값(스칼라 값)
만 반환해야 합니다.
문법
SELECT 절의 서브쿼리
SELECT column1, (SELECT some_value FROM another_table WHERE ...) AS new_column FROM main_table;
- 외부 쿼리: 메인 테이블에서 기본 컬럼을 조회
- 내부 서브쿼리: 관련된 데이터를 계산하거나 집계한 값을 반환
AS
: 새 컬럼 이름을 지정
예시: 사용자별 수강한 코스 개수
아래 쿼리는 각 사용자가 선택한 코스 수를 계산해 결과에 포함합니다.
SELECT 절의 서브쿼리 예시
SELECT u.name, ( SELECT COUNT(*) FROM user_courses uc WHERE uc.user_id = u.user_id ) AS course_count FROM users u;
결과
name | course_count |
---|---|
Sofia | 2 |
Ethan | 1 |
Aisha | 2 |
Noah | 1 |
Liam | 3 |
외부 쿼리는 users
테이블을 순회하고, 내부 서브쿼리는 user_courses
테이블에서 각 사용자별 수강 코스 개수를 계산합니다.
언제 사용할까
- 추가 계산된 컬럼을 결과에 동적으로 붙이고 싶을 때
- 복잡한 Join 없이 빠르게 요약 지표를 만들 때
- 단일 조회 값을 가져와 리포트에 활용할 때
참고 사항
- 서브쿼리는 반드시 값 하나만 반환해야 합니다. (그렇지 않으면 오류 발생)
- 대용량 데이터셋에서는 반복 실행으로 성능 저하가 생길 수 있습니다. → JOIN + GROUP BY 방식이 더 효율적인 경우가 많습니다.
COUNT
,SUM
,AVG
등 다양한 집계 함수와 함께 활용 가능하며, 서브쿼리 안에 또 다른 서브쿼리를 중첩하는 것도 가능합니다.
Quiz
0 / 1
SELECT 절의 서브쿼리는 각 행에 대해 여러 값을 반환할 수 있다.
○
✕
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과