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

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

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

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

 

ROW_NUMBER():함수

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

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

SELECT 
    id,
    salesperson,
    sale_item,
    sale_amount,

    ROW_NUMBER()  OVER (ORDER BY sale_amount DESC) as row_number

FROM      
    sales;

 

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

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

 

 

RANK() 함수

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

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

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

soo02.tistory.com

 

DENSE_RANK() 함수

  • 동일한  값들에 대해 동일한 순위를 할당.
  • 다음 순위는생략되지 않고, 순서대로 매김  ex) 1,1,2,3

 

 

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

MySQL/MariaDB dense_rank 함수. 랭킹(순위) 구하기.DENSE_RANK() 함수동일한 순위를 가진 값들에 대해 동일한 순위를 할당.다음 순위는 생략되지 않고, 순서대로 매깁니다. ex)  두 행이 동일한 값을 가

soo02.tistory.com

댓글