`PERCENT_RANK()`는 SQL의 윈도우 함수로, 특정 행의 상대적 순위를 백분율로 나타내는 데 사용됩니다. 이 함수는 데이터 집합에서 각 행의 상대적 위치를 계산하여, 그 결과를 0과 1 사이의 값으로 반환합니다.
### 구문
```sql
PERCENT_RANK() OVER (PARTITION BY partition_expression ORDER BY order_expression)
```
- **`PARTITION BY partition_expression`** (선택적): 데이터를 그룹화하여 각 그룹 내에서 백분율 순위를 계산합니다. 지정하지 않으면 전체 데이터 집합에서 계산됩니다.
- **`ORDER BY order_expression`**: 백분율 순위를 계산할 때 사용하는 정렬 기준입니다. 이 기준에 따라 각 행의 순위를 계산합니다.
### 계산 방식
`PERCENT_RANK()`는 다음의 공식을 사용하여 백분율 순위를 계산합니다:
\[ \text{PERCENT\_RANK} = \frac{\text{RANK} - 1}{\text{NUMBER\_OF\_ROWS} - 1} \]
- **`RANK`**: 현재 행의 순위입니다.
- **`NUMBER_OF_ROWS`**: 데이터 집합 또는 파티션 내의 총 행 수입니다.
### 예제
가정: `sales` 테이블에 판매 데이터가 저장되어 있습니다.
| sales_date | sales_amount |
|------------|--------------|
| 2024-01-01 | 1000 |
| 2024-01-02 | 1200 |
| 2024-01-03 | 1100 |
| 2024-01-04 | 1300 |
#### 기본 사용 예제
판매 금액의 백분율 순위를 계산합니다:
```sql
SELECT
sales_date,
sales_amount,
PERCENT_RANK() OVER (ORDER BY sales_amount) AS percent_rank
FROM sales;
```
**결과**:
| sales_date | sales_amount | percent_rank |
|------------|--------------|--------------|
| 2024-01-01 | 1000 | 0.0 |
| 2024-01-03 | 1100 | 0.5 |
| 2024-01-02 | 1200 | 0.75
'Data Analysis 데이터 분석 > SQL 통한 Database 관리' 카테고리의 다른 글
drop schema employee cascade (0) | 2024.08.18 |
---|---|
drop schema employee restrict (0) | 2024.08.18 |
dense_rank() , rank, row number 동일한 값 있을 경우 예시 (0) | 2024.08.18 |
오라클 데이터베이스 (0) | 2024.08.18 |
각각의 트랙잭션이 영향 주는 칼럼이 같을 때 값이 어떻게 되니 (0) | 2024.08.18 |