메뉴 건너뛰기

조회 수 14 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

SQL Server에서 순위를 설정하는 함수로 RANK가 있습니다.

비슷한 함수로 DENSE_RANK도 있습니다.

두 함수의 사용법은 비슷하지만 결과가 조금 다른 경우가 있습니다.

예제를 통해서 결과가 어떻게 다른지 확인하겠습니다.

 

  RANK와 DENSE_RANK 차이

두 함수의 차이를 확인하기 전에 테스트 데이터를 만들겠습니다.

데이터는 앞서 설명한 RANK 함수에서 사용한 데이터를 가지고 하겠습니다.

 

테이블 생성 및 데이터 등록은 RANK 함수의 데이터 등록을 참조해주세요.

 

RANK 사용 예제

-- 학생 성적을 기준으로 순위 취득
SELECT
	RANK() OVER(ORDER BY SCORE DESC) AS SCORE_RANK,
	STUDENT_ID,
	STUDENT_NAME,
	SCORE
FROM
	STUDENT_GRADE
ORDER BY
	SCORE_RANK

결과

RANK와 DENSE_RANK 차이

 

DENSE_RANK 사용 예제

-- 학생 성적을 기준으로 순위 취득
SELECT
	DENSE_RANK() OVER(ORDER BY SCORE DESC) AS SCORE_RANK,
	STUDENT_ID,
	STUDENT_NAME,
	SCORE
FROM
	STUDENT_GRADE
ORDER BY
	SCORE_RANK

결과

DENSE_RANK 사용 예제

 

RANK와 DENSE_RANK 결과를 보면 크게 차이는 없습니다.

차이가 있는 곳은 성적이 같은 값일 경우에 결과가 다릅니다.

RANK로 순위를 설정한 결과에서는 10번 학생과 1번 학생의 성적이 같기 때문에 둘 다 10등로 순위가 설정되었습니다.

그리고 11등은 건너뛰고 다음 학생은 12등부터 다시 시작합니다.

DENSE_RANK 함수의 경우에는 10번 학생과 1번 학생 둘 중 한 명은 10등 다른 한 명은 11등으로 표시됩니다.

 

  정리

RANK와 DENSE_RANK 함수를 사용해서 순위를 설정한 결과와 차이점을 확인했습니다.

RANK의 경우에는 같은 값이 있는 경우에는 같은 랭크를 지정하지만 DENSE_RANK 경우에는 같은 값이 있어도 같은 랭크가 아닌 순서대로 랭크를 설정합니다.


List of Articles
번호 제목 날짜 조회 수
30 MSSQL EXISTS로 서브 쿼리 작성 방법 예제 file 2022.02.16 20
29 MSSQL IN 다중조건 사용 방법 2022.02.16 182
28 MSSQL 테이블 작성 인덱스 생성 하기 file 2022.02.16 53
27 MSSQL CLUSTERED INDEX와 NONCLUSTERED INDEX 차이점 2022.02.16 16
26 MSSQL Primary Key 컬럼 속성 변경 안될때 해결 방법 file 2022.02.16 23
25 MSSQL 컬럼 추가, 변경, 삭제 ALTER 사용 방법 예제 file 2022.02.16 19
24 MSSQL 컬럼 중간에 추가하는 방법 file 2022.02.16 186
» MSSQL RANK와 DENSE_RANK 랭크 함수 차이 예제 file 2022.02.16 14
22 MSSQL ROW_NUMBER로 성적 순위 설정 방법 예제 file 2022.02.16 9
21 MSSQL 성적 순위 설정 RANK 사용 방법 예제 file 2022.02.14 15
20 MSSQL 간단한 만나이 계산하기 DATEDIFF 사용 예제 file 2022.02.14 266
19 MSSQL 현재 시간 취득하는 여러 가지 방법 file 2022.02.14 14
18 MSSQL NULL값 변환 (NVL, ISNULL, CASE) 사용 방법 예 file 2022.02.14 134
17 MSSQL 공백값과 NULL값 동시에 체크 하는 방법 file 2022.02.14 1000
16 MSSQL 앞에 숫자0 채우기 FORMAT 사용 2022.02.14 86
15 MSSQL 숫자 3자리 콤마 넣기 또는 삭제하기 2022.02.14 56
14 MSSQL MERGE사용 안하고 있으면 UPDATE 없으면 INSERT 하기 2022.02.14 78
13 MSSQL MERGE 테이블에 있으면 업데이트 없으면 추가 하기 2022.02.14 10
12 MSSQL 문자열에서 숫자 또는 문자만 추출하기 REPLACE, PATINDEX 2022.02.14 671
11 MSSQL 모든 테이블 사용하고 있는 용량 확인 방법 2022.02.14 35
Board Pagination Prev 1 2 Next
/ 2

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved