2013. 2. 7. 16:52
|
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 |