Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 9.0.0 | 

DENSE_RANK 함수

설명

PARTITION BY 절에 의한 칼럼 값의 그룹에서 값의 순위를 계산하여 INTEGER로 출력하며, 분석 함수로만 사용된다. 공동 순위가 존재해도 그 다음 순위는 1을 더한다. 예를 들어, 13위에 해당하는 행이 3개여도 그 다음 행의 순위는 16위가 아니라 14위가 된다. 반면, RANK 함수는 이와 달리 공동 순위의 개수만큼을 더해 다음 순위의 값을 계산한다.

분석 함수에 대한 설명은 개요를 참고한다.

구문

DENSE_RANK() OVER ( [partition_by_clause] [order_by_clause] )

분석 함수 예제

다음은 역대 올림픽에서 연도별로 금메달을 많이 획득한 국가의 금메달 개수와 순위를 출력하는 예제이다. 공동 순위의 개수는 무시하고 다음 순위 값은 항상 1을 더한다.

SELECT host_year, nation_code, gold,

DENSE_RANK() OVER (PARTITION BY host_year ORDER BY gold DESC) AS d_rank

FROM participant;

 

host_year  nation_code                  gold       d_rank

=============================================================

         1988  'URS'                          55            1

         1988  'GDR'                          37            2

         1988  'USA'                          36            3

         1988  'KOR'                          12            4

         1988  'HUN'                          11            5

         1988  'FRG'                          11            5

         1988  'BUL'                          10            6

         1988  'ROU'                           7            7

         1988  'ITA'                           6            8

         1988  'FRA'                           6            8

         1988  'KEN'                           5            9

         1988  'GBR'                           5            9

         1988  'CHN'                           5            9

...

         1988  'CHI'                           0           14

         1988  'ARG'                           0           14

         1988  'JAM'                           0           14

         1988  'SUI'                           0           14

         1988  'SWE'                           0           14

         1992  'EUN'                          45            1

         1992  'USA'                          37            2

         1992  'GER'                          33            3

...

         2000  'RSA'                           0           15

         2000  'NGR'                           0           15

         2000  'JAM'                           0           15

         2000  'BRA'                           0           15

         2004  'USA'                          36            1

         2004  'CHN'                          32            2

         2004  'RUS'                          27            3

         2004  'AUS'                          17            4

         2004  'JPN'                          16            5

         2004  'GER'                          13            6

         2004  'FRA'                          11            7

         2004  'ITA'                          10            8

         2004  'UKR'                           9            9

         2004  'CUB'                           9            9

         2004  'GBR'                           9            9

         2004  'KOR'                           9            9

...

         2004  'EST'                           0           17

         2004  'SLO'                           0           17

         2004  'SCG'                           0           17

         2004  'FIN'                           0           17

         2004  'POR'                           0           17

         2004  'MEX'                           0           17

         2004  'LAT'                           0           17

         2004  'PRK'                           0           17