[MS-SQL] mssql ROW_NUMBER() OVER() / RANK() OVER() / DENSE_RANK() OVER() - 순위구하기 > db

본문 바로가기

db

[MS-SQL] mssql ROW_NUMBER() OVER() / RANK() OVER() / DENSE_RANK() OVER…

페이지 정보

작성자 서방님 댓글 0건 조회 31회 작성일 12-10-29 11:36

본문

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 정렬할 필드)

 

ROW_NUMBER%28%29.png?type=w2

 

 

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

 

 

RANK%28%29.png?type=w2

 

 

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

 

 

 dense_rank%28%29.png?type=w2

댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
364
어제
457
최대
592
전체
39,973

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]