본문 바로가기

MSSQL

MSSQL 에서 ROW_Number(), RANK(), DENSE_RANK(), NTIILE() 함수

 

SELECT


ROW_NUMBER() OVER(ORDER BY 정렬필드) ,      -- 이건 로우넘... 정렬되는 순서대로 1,2,3,4,....


RANK() OVER(ORDER BY 정렬필드) ,                   -- 이건 랭크...  로우넘은 같은 값이 있어도 1,2,3,4,... 지만

같은 값이 있으면 1,2,3,3,5... 이런식으로 등수가 표시된다. 

 

DENSE_RANK() OVER(ORDER BY 정렬필드) ,       --이것도 RANK 이지만 이건 같은값이 있으면 1,2,3,3,4... 이런식으로 같은 값에 같은 등수를 표시하고 RANK가 1,2,3,3,5 처럼 3 이 2개면 그 다음에 5가 나오고 DENSE_RANK는 1,2,3,3,4 처럼 앞의 숫자에 다음게 온다는게 다르다.

 

NTILE(5) OVER(ORDER BY 정렬필드)                   --이건 상위 5% 를 뽑아주는거?  상위 5% 까지는 1, 10%까지는 2 이런식으로 표시된다.


FORM 테이블 A JOIN 테이블 B ON A.필드=B.필드

'MSSQL' 카테고리의 다른 글

mssql 테이블 복사 및 데이터 복사하기  (0) 2012.07.02
MsSql 에 사용하는 날짜 함수  (0) 2011.10.26