본문 바로가기
MySQL MariaDB/SQL 문법

MySQL/MariaDB dense_rank 함수. 랭킹(순위) 구하기.

by 쑤- IT, MySQL, MariaDB, DBeaver 2024. 7. 15.

MySQL/MariaDB dense_rank 함수. 랭킹(순위) 구하기

.

DENSE_RANK() 함수

  • 동일한 순위를 가진 값들에 대해 동일한 순위를 할당.
  • 다음 순위는 생략되지 않고, 순서대로 매깁니다. 

ex)  두 행이 동일한 값을 가지고 1위로 지정되면, 그 다음 행은 2위로 순위가 됨.

 

예제  ) sale_amount 기준으로 순위 매기기.

SELECT 
    id,
    salesperson,
    sale_item,
    sale_amount,

    DENSE_RANK() OVER (ORDER BY sale_amount DESC) as dense_rank

FROM      
    sales;

 

결과. - rank 1 : 2개.    다음 rank : 2

id | salesperson  | sale_item  | sale_amount | dense_rank
----------------------------------------------------------------------------
 1   | Alice                |  item1         |   5000               |       1
 3   | Charlie           |   item1        |   5000               |       1
 4   | Alice                |  item3         |   4000               |       2
 2   | Bob                 |  item2         |   3000               |       3
 5   | Eve                  |  item2         |   3000               |       3

 

 

RANK() 함수

  • 동일한 값들에 대해 동일한 순위를 할당. 
  • 다음 순위는 건너뛰기    ex) 1,1,3,4,,,,
 

MySQL/MariaDB rank 함수. 랭킹(순위) 구하기.

MySQL/MariaDB rank 함수. 랭킹(순위) 구하기.RANK() 함수동일한 순위를 가진 값들에 대해 동일한 순위를 할당.다음 순위는 건너뛰기.  ex) 1,1,3,4,,,,ex)  두 행이 동일한 값을 가지고 1위로 지정되면,

soo02.tistory.com

 

 

ROW_NUMBER():함수

  • 동일한  값들에 대해서도  각 행에 고유한 순위 번호를 부여
 

MySQL/MariaDB row_number 함수. 랭킹(순위) 구하기.

MySQL/MariaDB row_number 함수. 랭킹(순위) 구하기. ROW_NUMBER():함수동일한  값들에 대해서도  각 행에 고유한 순위 번호를 부여예제  ) sale_amount 기준으로 순위 매기기.SELECT      id,     sales

soo02.tistory.com

댓글