Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

10 SELECT 문에 서브 쿼리 사용하기 본문

MSSQL/테이블을 서로 통합하는 조인

10 SELECT 문에 서브 쿼리 사용하기

빌드이너프 2024. 10. 14. 22:00

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