본문 바로가기

Database/MSSQL work

CTE

CTE는 SELECT, INSERT, UPDATE, DELETE 또는 CREATE VIEW 문 

하나의 실행 범위 내에서 정의되는 임시 결과 집합이라고 볼 수 있다.

 

 

사용방법 :  WITH 테이블명 AS (SELECT ...)

 

 

-- CTE ? 


select custId, sum(sales) as [판매금액]
from salesTbl
group by custId
order by sum(sales);

 

 

 

 

--위와 동일, 아이디별 금액 합산

: customber, total 이라는 변수를 생성. == custId, sum(sales)


with cte_sum(customer,total)
as
	(	select custId, sum(sales) as [판매금액]
		from salesTbl
		group by custId
	)
select * from cte_sum
order by total;


select * from salesTbl;

 

--사용자들의 1회 방문시 최대 구매익 평균구하기

: max(sales)를 구해서 변수 maxBuy에 대입하고,  avg로 나눔

 

with cte_max(customer, maxBuy)
as
	(	select custId, max(sales)
		from salesTbl
		group by custId
	)
select avg(maxBuy) from cte_max;

 

 

 

 

 

 

--지역별 가장 큰 키

WITH AddrMaxHeight(Addr, MaxHeight)
AS
(
    SELECT Addr, MAX(Height) AS MaxHeight FROM UserTable
    GROUP BY Addr
)

 

--지역별 가장 큰키의 평균

WITH AddrMaxHeight(Addr, MaxHeight)
AS
(
    SELECT Addr, MAX(Height) AS MaxHeight FROM UserTable
    GROUP BY Addr
)
 
SELECT AVG(MaxHeight * 1.0) AS [각 지역별 최고 키들의 평균] FROM AddrMaxHeight

'Database > MSSQL work' 카테고리의 다른 글

NULL 값을 0으로 표시  (0) 2020.11.10
Rollup(), Grouping  (0) 2020.11.09
sp_help  (0) 2020.11.09
날짜, 기타  (0) 2020.11.09
CAST(), CONVERT(), TRY_(), PARSE()  (0) 2020.11.09