--pivot
select YEAR, [1] as '1분기', [2] as '2분기', [3] as '3분기', [4] as '4분기'
From (select YEAR, quater, amount from PivotT) as t1
pivot( sum(amount)
  for quater in ([1], [2], [3], [4]) ) as pvt;

PIVOT (집계함수(값이있는 열의 이름)
  FOR 피벗하고자하는열 in (목록))


--ROW_NUMBER()
SELECT Year
,  Part
,  quater
,  amount
,  ROW_NUMBER() OVER(ORDER BY 타겟 DESC) AS 'Row Nmber'
FROM PivotT
go

모든 개체의 넘버를 빠지는 번호없이 순서를 정하는 함수.


--RANK()
SELECT Year
,  Part
,  quater
,  amount
,  RANK() OVER(ORDER BY 타겟 DESC) AS 'rank'
FROM PivotT
go

개체의 타겟을 기준으로 순위를 매김.


--DENSE_RANK()
DENSE_RANK() OVER (ORDER BY amount DESC) as 'densh'

중복된 다음의 넘버가 건너뛰는 번호없이 모두 표시됨.


--NTILE(넘버)
NTILE(5) OVER (ORDER BY amount DESC) as 'tile'

0부터 넘버에 표시되는 숫자까지의 수를 균등하게 적용하여 표시됨.


--partition by
RANK() OVER(partition by 타겟 ORDER BY amount DESC) AS 'rank'

표시된 타겟을 같은수끼리 영역으로 묶어 영역별 순위를 매김.

 

 

 

 

 

/*
INSERT PivotT (Year,Part,quater,amount)
values (2001,'g',3,2.7);
*/

SELECT *
FROM PivotT
go

SELECT Year
,  Part
,  quater
,  amount
,  ROW_NUMBER() OVER(ORDER BY amount DESC) AS 'Row Nmber'
,  RANK() OVER(partition by Year ORDER BY amount DESC) AS 'rank'
,  DENSE_RANK() OVER (ORDER BY amount DESC) as 'densh'
,  NTILE(5) OVER (ORDER BY amount DESC) as 'tile'
FROM PivotT
go

+ Recent posts