PostgreSQL 기초강의, PostgreSQL 기초강좌
87강 SQL 함수 정리 : PostgreSQL PERCENT_RANK Function
SQL 함수 정리 87강 시작합니다.
이번 시간에는
▶ PostgreSQL PERCENT_RANK Function
에 대해서 알아보는 시간입니다.
이번 시간에는 PostgreSQL PERCENT_RANK 함수를 사용하여 값 집합 내에서 값의 상대적 순위를 계산하는 방법에 대해 알아봅니다.
PostgreSQL PERCENT_RANK() 함수 소개
PERCENT_RANK () 함수는 CUME_DIST() 함수와 유사합니다. 공식이 다릅니다. PERCENT_RANK () 함수는 값 집합 내에서 값의 상대적인 순위를 평가합니다.
임의의 행의 백분율 순위를 계산합니다. 백분율 순위를 구하는 공식은 다음과 같습니다.
(x - 1) / (the number of rows in the window or partition - 1)
(x - 1) / (창 또는 파티션의 행 수 - 1)
여기서 x는 현재 행의 순위입니다. 따라서 첫 번째 행은 항상 0입니다.
다음은 PERCENT_RANK () 함수의 구문을 보여줍니다:
PERCENT_RANK() OVER (
[PARTITION BY partition_expression,... ]
ORDER BY sort_expression [ASC | DESC],...
)
이 구문에서:
PARTITION BY
PARTITION BY 절은 행을 PERCENT_RANK() 함수가 적용되는 여러 파티션으로 나눕니다.
PARTITION BY 절은 선택 사항입니다. 생략하면 함수는 전체 결과 집합을 단일 파티션으로 처리합니다.
ORDER BY
ORDER BY 절은 함수가 적용되는 각 파티션의 행 순서를 지정합니다.
Return value
PERCENT_RANK() 함수는 0보다 크고 1보다 작거나 같은 결과를 반환합니다.
0 <= PERCENT_RANK() <= 1
첫 번째 값은 항상 0의 순위를 받습니다. 평가된 값을 동일한 누적 분포 값에 연결합니다.
PostgreSQL PERCENT_RANK() 예제
우리는 시연을 위해 CUME_DIST() 함수 튜토리얼에서 생성된 sales_stats 테이블을 사용할 것입니다.
SELECT
year,
name,
amount
FROM
sales_stats
ORDER BY
year, name;
1) 결과 집합 예제에 PostgreSQL PERCENT_RANK() 함수 사용
다음 예제에서는 PERCENT_RANK () 함수를 사용하여 2019년 각 직원의 매출 백분위수를 계산합니다:
SELECT
name,
amount,
PERCENT_RANK() OVER (
ORDER BY amount
)
FROM
sales_stats
WHERE
year = 2019;
2) 파티션 예제에서 PostgreSQL PERCENT_RANK() 함수 사용
이 예제는 2018년과 2019년 모두 영업 사원의 매출액 백분위수를 계산하기 위해 PERCENT_RANK() 함수를 사용합니다.
SELECT
name,
amount,
PERCENT_RANK() OVER (
PARTITION BY year
ORDER BY amount
)
FROM
sales_stats;
이 예에서는 다음을 수행합니다:
- PARTITION BY 절은 sales_stats 테이블의 행을 2018년과 2019년의 두 개의 파티션으로 분배했습니다.
- ORDER BY 절은 판매 금액별로 각 파티션의 행을 정렬했습니다.
- PERCENT_RANK() 함수는 순서가 지정된 각 파티션에 적용되어 백분율 순위를 계산합니다.
이번 강의에서는 PostgreSQL PERCENT_RANK() 함수를 사용하여 값 집합 내에서 값의 상대적 순위를 계산하는 방법에 대해 배웠습니다.
CUME_DIST() 함수와 다른 점은 계산 공식이 다르다는 것입니다.
수고하셨습니다.
본 강의는 PostgreSQL Tutorial을 참조합니다. https://www.postgresqltutorial.com/ |
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
89강 SQL 함수 정리 : PostgreSQL LAST_VALUE Function (135) | 2023.01.31 |
---|---|
88강 SQL 함수 정리 : PostgreSQL FIRST_VALUE Function (58) | 2023.01.30 |
86강 SQL 함수 정리 : PostgreSQL CUME_DIST Function (60) | 2023.01.28 |
85강 SQL 함수 정리 : PostgreSQL DENSE_RANK Function (106) | 2023.01.27 |
84강 SQL 함수 정리 : PostgreSQL RANK Function (97) | 2023.01.26 |
댓글