본문 바로가기
프로그래밍/MSSQL

[MSSQL] mssql 순위 함수(RANK, DENS_RANK, ROW_RANK)

by wyatti 2023. 3. 30.

mssql 순위
mssql RANK DENS_RANK ROW_RANK

MSSQL에 순위를 매겨주는 함수가 있다. 그중 RANK(), DENS_RANK(), ROW_RANK 함수가 있다.

RANK(), DENS_RANK(), ROW_RANK() 공통적인 특징은 ORDER BY 함수와 함께 사용해줘야 한다.

순위를 매겨주는 함수이며 정렬을 해주는 함수가 아니기 때문에 ORDER BY절과 함께 사용해줘야 한다.

MSSQL RANK() 함수 특징

RANK() 함수는 RANK() OVER (ORDER BY [칼럼명]) 형식으로 사용이 된다.

SELECT절 안에 사용해야 하며, 새로운 열에 보여주므로 AS(별칭)을 사용해주어야 한다.

- 테이블 실제 데이터에는 영향 없다.

RANK() 함수는 공동 순위가 있으면 제외 하고 다음순서로 건너뛰는 특징이 있다.

rank() 함수를 사용할 때 PARTITION BY를 사용해서 정렬해 줄 수 있는데 그건 추후에 작성할 예정이다.

MSSQL RANK() 문법

  • 문법
SELECT [칼럼명]
	   ,···
       ,RANK() OVER (ORDER BY [칼럼명])
FROM [테이블 명]
WHERE [조건]

RANK() 특징에서 설명해 둔 것과 같이 문법은 같다. SELECT절 안에 위와 같이 해주면 된다.

ORDER BY 기본 문법은 ASC이며, 오름차순이다. 내림차순으로 하고 싶으면 ORDER BY [칼럼명] DESC로 해주면 된다.

2022.08.25 - [프로그래밍/MSSQL] - [MSSQL] ORDER BY 사용법(정렬 순서 방법) - 오름차순, 내림차순

 

[MSSQL] ORDER BY 사용법(정렬 순서 방법) - 오름차순, 내림차순

MSSQL을 이용하여 데이터를 조회할 때 이름 또는 시간 어떤 다른 기준으로 데이터를 정렬해서 출력해야 하는 경우가 종종 발생한다. 그럴 때 데이터를 정렬해서 출력하기 위해 ORDER BY 절을 이용해

wyatti.tistory.com

반응형

위와 같이 쿼리를 실행해주면 결과 집합이 따로 잡혀 결과값이 나오기 때문에 AS(별칭)을 붙여주고 사용해줘야 한다.

2022.01.26 - [프로그래밍/MSSQL] - [MSSQL] 별칭(ALIAS) 사용법 및 예제

 

[MSSQL] 별칭(ALIAS) 사용법 및 예제

SELECT 문의 결과를 출력할 때 일반적으로 열 이름은 테이블을 정의했을 때 명명한 열의 이름으로 출력하게 된다. 원래 명명된 열 이름 외에 열 이름으로 임의로 바꿔서 출력하는 것이 별칭(ALIAS)

wyatti.tistory.com

DENSE_RANK()특징

RANK()함수와 특징은 같으며, RANK()함수와 다른점이 있다면 공동 순위가 있어도 다음순위를 뛰어 넘지 않는고 동일한 순위를 가지는 특징이 있으며 ORDER BY절로 정렬이 바뀔것이다.

DENSE_RANK() 문법

SELECT [칼럼명]
	   ,···
       ,DENS_RANK() OVER (ORDER BY [칼럼명])
FROM [테이블 명]
WHERE [조건]

ROW_NUMBER() 특징

RANK()함수와 유사하며, 공동순위를 무시하며 같은 순위여도 그대로 결과값을 출력해준다.

SELECT [칼럼명]
	   ,···
       ,ROW_RANK() OVER (ORDER BY [칼럼명])
FROM [테이블 명]
WHERE [조건]

댓글