충분히 쌓여가는
10 SELECT 문에 서브 쿼리 사용하기 본문
SELECT 문에 사용하는 서브 쿼리는 반드시 1개의 행을 반환해야 하므로 SUM, COUNT, MIN, MAX 등의 집계 함수와 함께 사용하는 경우가 많다.
하지만 성능 문제가 생기기 쉬우므로 SELECT 문에서는 서브 쿼리의 집계 함수와 함께 사용하지 않는 것이 좋다.
스칼라 서브 쿼리(Scalar Subquery)
SELECT 문에 사용된 서브 쿼리
스칼라 서브 쿼리는 1개 이상 사용할 수 있다
스칼라 서브 쿼리의 기본 형식
SELECT [열 이름],
(SELECT <집계 함수> [열 이름] FROM [테이블 2]
WHERE [테이블 2.열] = [테이블 1.열]) as Alias
FROM [테이블 1]
WHERE [조건]
스칼라 서브 쿼리 사용
-- 테이블 조인
SELECT
a.symbol, a.company_name, a.ipo_year, a.sector, a.industry,
b.date, b.[open], b.[high], b.[low], b.[close], b.adj_close, b.volume
FROM nasdaq_company AS a
INNER JOIN stock AS b ON a.symbol = b.symbol
WHERE a.symbol = 'MSFT'
AND b.date >= '2021-10-01'
AND b.date >= '2021-11-01'
-- 서브쿼리
SELECT
a.symbol,
(SELECT company_name FROM nasdaq_company AS b WHERE b.symbol = a.symbol) AS company_name,
(SELECT ipo_year FROM nasdaq_company AS b WHERE b.symbol = a.symbol) AS ipo_year,
(SELECT sector FROM nasdaq_company AS b WHERE b.symbol = a.symbol) AS sector,
(SELECT industry FROM nasdaq_company AS b WHERE b.symbol = a.symbol) AS industry,
a.date, a.[open], a.[high], a.[low], a.[close], a.adj_close, a.volume
FROM stock AS a
WHERE symbol = 'MSFT'
AND date >= '2021-10-01'
AND date < '2021-11-01'
'MSSQL > 테이블을 서로 통합하는 조인' 카테고리의 다른 글
11 공통 테이블 식, CTE (6) | 2024.10.17 |
---|---|
09 FROM 문에 서브 쿼리 사용 (0) | 2024.10.14 |
08 다중 행 서브 쿼리 (1) | 2024.10.10 |
07 단일 행 서브 쿼리 (1) | 2024.10.09 |
06 서브 쿼리 (1) | 2024.10.09 |