MySQL 순위 정하기

Hyunwoo Seo·2022년 8월 10일
0

MySQL

목록 보기
1/5
post-thumbnail

데이터베이스에서 가져온 데이터들의 순위를 매겨야 할 때,

Mysql 버전이 8 이상이라면 Rank() 함수를 사용 가능하다.


Rank() 함수는 아주아주 편리하다. 내부 order by 가 들어가야한다는 것과, 같은 순위를 가질 때 다음 데이터는 직전 순위를 뛰어넘고 그 다음 순위를 가진다는 특징이 있다. (ex. 1등 2명, 2등 X, 3등 1명)

select rank() over (order by [순위기준] desc) as 'rank' from [TABLE];

위의 쿼리처럼 사용하면 된다.


데이터를 이미 한번 걸렀다고 해도 방식은 동일하다.

서브쿼리로 진행하면 된다.

월별 데이터들을 1차로 정리하고, 그 월별데이터들의 순위를 매겨야 할 때 아래처럼 진행하면 된다.

SELECT, 결과, RANK() over (ORDER BY 결과 DESC) AS 순위
FROM (
    [서브쿼리]
    )  AS resultSelect // `AS` 지정해줘야 에러 안남. 
GROUP BY; 
// `GROUP BY` 를 `월` 로 지정해줘야 월은 순서대로 순위는 그에 맞게 나온다. 

0개의 댓글