[MySQL] RANK(), PERCENT_RANK()

szlee·2024년 10월 20일
0

MySQL

목록 보기
3/16

MySQL에서 특정 값이 상위 몇 퍼센트에 속하는지 알아내려면, 전체 데이터의 순위를 매기고 해당 값이 차지하는 순위를 퍼센트로 변환하면 됩니다. 이를 위해서 RANK() 또는 PERCENT_RANK() 함수를 사용할 수 있습니다.

RANK() 함수 사용 예시:

아래 예시에서는 테이블의 값이 상위 몇 퍼센트에 속하는지 계산하는 방법을 보여줍니다. 예를 들어, scores라는 테이블에서 각 score가 상위 몇 퍼센트에 있는지 알고 싶은 경우:


SELECT
    score,
    RANK() OVER (ORDER BY score DESC) AS rank,
    (RANK() OVER (ORDER BY score DESC) / (SELECT COUNT(*) FROM scores) * 100) AS percentile
FROM
    scores;

위 쿼리는 각 score의 순위를 계산하고, 그 순위를 전체 데이터의 개수로 나누어 상위 몇 퍼센트인지 구하는 방식입니다.

PERCENT_RANK() 함수 사용 예시:

PERCENT_RANK()는 0에서 1 사이의 값을 반환하며, 해당 값이 속한 비율을 나타냅니다. 이를 100으로 곱하면 퍼센트로 나타낼 수 있습니다.


SELECT
    score,
    PERCENT_RANK() OVER (ORDER BY score DESC) * 100 AS percentile
FROM
    scores;

이 쿼리는 자동으로 상위 몇 퍼센트인지 구해줍니다.

요약
RANK()를 사용하면 전체 순위를 기반으로 퍼센트를 수동으로 계산할 수 있습니다.
PERCENT_RANK()를 사용하면 퍼센트를 바로 계산할 수 있습니다.
어떤 방법이든 데이터의 특성에 맞게 사용할 수 있습니다.

profile
🌱

0개의 댓글