본문 바로가기

개발하자/DB&SQL

윈도우 함수 RANK() , DENSE_RANK()

*윈도우 함수로 순위 구하기

SELECT name,

age,

RANK() OVER(ORDER BY age DESC) AS rnk

FROM Address;

 

실행결과

name   | age  | rnk

--------+------+----

하린    | 55    | 1

준       | 45    | 2

기주    | 32    | 3

민       | 32    | 3

인성    | 30    | 5

 

RANK 함수는 숫자가 같으면 같은 순위를 표시하고 다음 순위는 건너뛰게 된다.

건너뛰는 작업 없이 순위를 구하고 싶을 때는 DENSE_RANK함수를 사용한다.

 

SELECT name,

age,

DENSE_RANK() OVER(ORDER BY age DESC) AS rnk

FROM Address;

 

실행결과

name   | age  | rnk

--------+------+----

하린    | 55    | 1

준       | 45    | 2

기주    | 32    | 3

민       | 32    | 3

인성    | 30    | 4


 

'개발하자 > DB&SQL' 카테고리의 다른 글

인덱스 스캔과 테이블 풀스캔  (0) 2018.07.04
윈도우 함수로 카운트하기  (0) 2018.07.03
mysql ALIAS_FOR_SUBQUERY  (0) 2018.06.01