티스토리 뷰
서브쿼리(Subquery)는 SQL문에 포함되어 있는 또 다른 SQL문으로써 최종 출력을 위한 보조 역할을 하는 SQL문입니다. 즉 서브쿼리(Subquery)는 특정 값을 가지고 있는 row의 다른 칼럼이 필요할 때 활용할 수 있습니다. 서브쿼리(Subquery)는 메인 SQL문에서 GROUP BY를 제외한 모든 곳에 작성할 수 있고 작성되는 위치와 반환 값에 따라 명칭이 달라집니다.
- 인라인 뷰(Inline view) : FROM 절에 사용되는 서브쿼리, 결과가 동적으로 생성된 테이블처럼 사용할 수 있지만 임시적인 View이기 때문에 데이터 베이스에 저장되지 않습니다.
- 스칼라 서브쿼리 : SELECT 절에 사용되는 서브쿼리, 결괏값으로 하나의 값(단일 행)을 반환합니다.
- 서브쿼리 : WHERE 절에 사용되는 서브쿼리
<위치에 따라 사용되는 서브쿼리>
- 단일 행 서브쿼리 : 서브쿼리에서 한 행에 대한 값만 반환하는 것, 메인 쿼리의 WHERE 절에서 사용한다면 단일 행 비교 연산자(>, <, <= 등)를 사용한다.
- 다중 행 서브쿼리 : 서브쿼리에서 여러 행에 대한 결과 값을 반환하는 것, 메인 쿼리의 WHERE 절에서 사용한다면 다중 행 비교 연산자를 사용한다.
- IN : 반환되는 여러 개의 행 중 하나만 참이어도 참
- ALL : 메인쿼리와 서브쿼리의 결과가 모두 동일하면 참
- EXISTS : 서브쿼리 결과를 만족하는 값이 존재하는지 여부를 확인
<반환 값에 따른 서브쿼리>
ex) sakila 데이터베이스에서 customer_id가 5인 고객의 대여횟수, customer_id, first_name, last_name을 구하시오.
SELECT C.customer_id, C.first_name, C.last_name,
(SELECT COUNT(rental_id) FROM sakila.rental WHERE customer_id=C.customer_id) AS total_rent
FROM sakila.customer C
WHERE C.customer_id=5;
ex) sakila 데이터베이스에서 대여횟수가 10회 이상인 고객의 customer_id, first_name, last_name, 대여 횟수를 구하시오. 결과는 대여 횟수 기준으로 오름차순 정렬하세요
SELECT C.customer_id, C.first_name, C.last_name,
(SELECT COUNT(R.rental_id) FROM sakila.rental R WHERE C.customer_id=R.customer_id
GROUP BY R.customer_id HAVING COUNT(R.rental_id)>=10) AS total_rent
FROM sakila.customer C
ORDER BY total_rent ASC;
'MySQL' 카테고리의 다른 글
[3] WITH 문 연습 (0) | 2025.04.08 |
---|---|
[1] SQL 코딩테스트 문법 정리 (0) | 2025.01.05 |
TAG
- 파이썬 #코딩테스트 #프로그래머스 #스택 #큐
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- python #deque #프로그래머스 #공 던지기 #문자열 계산하기 #코딩테스트
- gan #생성자 #판별자 #적대적 신경 신경망 #딥러닝 #computer vision
- seaborn #데이터시각화 #타이타닉
- #attention #deeplearning
- html #javascript #구구단 출력
- rnn #딥러닝 #시계열 데이터 #장기의존성 문제
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- python #프로그래머스 #겹치는선분의길이
- 머신러닝 #xgboost #
- #tf idf
- 머신러닝 #lightgbm #goss #ebf
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- #opencv #이미지 연산 #합성
- 잘라서 배열로 저장하기 #2차원으로 만들기
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- 파이썬 #시각화 #matplotlib
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- #seq2seq #encoder #decoder #teacher forcing
- nlp #토큰화 #nltk #konply
- subquery #sql 코딩테스트
- 머신러닝 #project #classification #dacon
- 딥러닝 #오차역전파 #연쇄법칙 #계산그래프 #최적화
- ridge #lasso #정규화모델 #머신러닝
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- python #프로그래머스 #리스트 #인덱싱
글 보관함
최근에 올라온 글