--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
'개발 > SQL' 카테고리의 다른 글
MS-SQL 기초문제 (0) | 2011.05.18 |
---|---|
MS-SQL 문법 [ DATE ] (0) | 2011.05.18 |
MS-SQL 숫자,텍스트,문법 [ in , like , Math ] (0) | 2011.05.18 |
기초문법 [ GROUPING , with rollup , is not null ] (0) | 2011.05.18 |
sql 기초문법 (0) | 2011.05.18 |