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;
출력:
name | course_count |
---|---|
Sofia | 2 |
Ethan | 1 |
Aisha | 2 |
Noah | 1 |
Liam | 3 |
이 쿼리는
user_courses
테이블에서 각 사용자가 가진 행(코스 선택 기록)의 개수를 셉니다.
왜 유용할까요?
다음과 같은 상황에서 SELECT
절의 서브쿼리를 사용하세요.
- 추가 계산된 컬럼을 붙이고 싶을 때
- 일회성 지표를 위해 Join을 피하고 싶을 때
- 리포팅 로직을 한 곳에 모아두고 싶을 때
참고 사항
- 각 서브쿼리는 반드시 값 하나만 반환해야 합니다. 그렇지 않으면 SQL 오류가 발생합니다.
- 빠른 요약에 유용하지만, 큰 데이터셋에서는 Join이 더 효율적인 경우가 많습니다.
COUNT
,SUM
,AVG
는 물론, 서브쿼리 안에 또 다른 서브쿼리를 중첩해서 사용할 수도 있습니다.
Quiz
0 / 1
SELECT 절의 서브쿼리는 각 행에 대해 여러 값을 반환할 수 있다.
○
✕
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과