posted by 네코냥이 2013. 2. 7. 16:52

복사 http://blog.naver.com/dlzmstks/168228548

전용뷰어 보기


1. ROW_NUMBER() OVER(ORDER BY 정렬할 필드)


2. RANK() OVER(ORDER BY 정렬할 필드)


3. DENSE_RANK() OVER(ORDER BY 정렬할 필드)


세 가지 함수 모두 순위를 구하는 용도로 사용이 가능하다. 그러나 조금씩 용법이 다르다.


1. ROW_NUMBER() OVER()

- 순위를 구하기는 하나 같은 값에 대하여 무시를 한다.



2. RANK() OVER()

- 같은 값은 동등한 순위로 값을 반환한다. 예로 100, 95, 95, 84, 70, 70, 56 이라는 값이 있을 때 결과값은 1, 2, 2, 4, 5, 5, 7 이 된다.



3. DENSE_RANK() OVER()

- 같은 값을 동등한 순위로 값을 반환한다. 하지만 RANK()와 다르게 동등한 순위의 다음 순위는 순차적으로 메겨진다. 2번과 같은 예가 있을 경우 RANK()의 결과값은 1, 2, 2, 4, 5, 5, 7 이 되었지만, DENSE_RANK() OVER() 는 1, 2, 2, 3, 4, 4, 5가 된다.



실제 사용 예제)


1. ROW_NUMBER() OVER(ORDER BY 정렬할 필드)


2. RANK() OVER(ORDER BY 정렬할 필드)





3. DENSE_RANK() OVER(ORDER BY 정렬할 필드)


3.

'.NET > MS-SQL' 카테고리의 다른 글

[MS-SQL] 성능모니터 간략설명  (0) 2013.07.24
[MS-SQL] Group By 예제  (0) 2013.07.24
[MS-SQL] 프로파일러 및 튜닝어드바이서 사용법  (0) 2013.06.14
프로시저 기본 템플릿  (0) 2013.05.10
[닷넷] ms sql 내장함수  (0) 2013.02.07