

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# PERCENTILE\$1DISC 창 함수
<a name="r_WF_PERCENTILE_DISC"></a>

PERCENTILE\$1DISC는 이산 분포 모델을 가정하는 역분포 함수로서 백분위 값과 정렬 명세를 가지며, 지정된 집합에서 요소를 반환합니다.

임의의 백분위 값을 P라고 할 때, PERCENTILE\$1DISC는 ORDER BY 절의 표현식 값을 정렬한 후 동일한 정렬 명세와 관련하여 가장 작지만 P보다는 크거나 같은 누적 분포 값을 반환합니다.

PARTITION 절은 OVER 절에서만 지정할 수 있습니다.

## 구문
<a name="r_WF_PERCENTILE_DISC-synopsis"></a>

```
PERCENTILE_DISC ( percentile )
WITHIN GROUP (ORDER BY expr)
OVER (  [ PARTITION BY expr_list ]  )
```

## 인수
<a name="r_WF_PERCENTILE_DISC-arguments"></a>

 *(백분위수*)   
0과 1 사이의 숫자 상수입니다. 이 계산에서 Null 값은 무시됩니다.

WITHIN GROUP (ORDER BY *expr*)   
숫자 또는 날짜/시간 값을 지정하여 백분위를 정렬 및 계산합니다.

OVER   
창 파티션을 지정합니다. OVER 절에는 창 순서 또는 창 프레임 명세가 포함될 수 없습니다.

PARTITION BY *expr*   
OVER 절에서 각 그룹의 레코드 범위를 설정하는 인수(옵션)입니다.

## 반환 형식
<a name="r_WF_PERCENTILE_DISC-returns"></a>

WITHIN GROUP 절의 ORDER BY 표현식과 동일한 데이터 형식

## 예제
<a name="r_WF_PERCENTILE_DISC-examples"></a>

아래 예에서는 WINSALES 테이블을 사용합니다. 요청 데이터에 대한 설명은 [창 함수 예제를 위한 샘플 테이블](c_Window_functions.md#r_Window_function_example) 섹션을 참조하세요.

```
SELECT sellerid, qty, PERCENTILE_DISC(0.5) 
WITHIN GROUP (ORDER BY qty) 
OVER() AS MEDIAN FROM winsales;

+----------+-----+--------+
| sellerid | qty | median |
+----------+-----+--------+
| 3        | 10  | 20     |
| 1        | 10  | 20     |
| 1        | 10  | 20     |
| 4        | 10  | 20     |
| 3        | 15  | 20     |
| 2        | 20  | 20     |
| 2        | 20  | 20     |
| 3        | 20  | 20     |
| 1        | 30  | 20     |
| 3        | 30  | 20     |
| 4        | 40  | 20     |
+----------+-----+--------+

SELECT sellerid, qty, PERCENTILE_DISC(0.5) 
WITHIN GROUP (ORDER BY qty) 
OVER(PARTITION BY sellerid) AS MEDIAN FROM winsales;

+----------+-----+--------+
| sellerid | qty | median |
+----------+-----+--------+
| 4        | 10  | 10     |
| 4        | 40  | 10     |
| 3        | 10  | 15     |
| 3        | 15  | 15     |
| 3        | 20  | 15     |
| 3        | 30  | 15     |
| 2        | 20  | 20     |
| 2        | 20  | 20     |
| 1        | 10  | 10     |
| 1        | 10  | 10     |
| 1        | 30  | 10     |
+----------+-----+--------+
```

판매자 ID별로 구분한 수량에 대한 PERCENTILE\$1DISC(0.25) 및 PERCENTILE\$1DISC(0.75)를 찾으려면 다음 예를 사용하세요.

```
SELECT sellerid, qty, PERCENTILE_DISC(0.25) 
WITHIN GROUP (ORDER BY qty) 
OVER(PARTITION BY sellerid) AS quartile1 FROM winsales;

+----------+-----+-----------+
| sellerid | qty | quartile1 |
+----------+-----+-----------+
| 4        | 10  | 10        |
| 4        | 40  | 10        |
| 2        | 20  | 20        |
| 2        | 20  | 20        |
| 3        | 10  | 10        |
| 3        | 15  | 10        |
| 3        | 20  | 10        |
| 3        | 30  | 10        |
| 1        | 10  | 10        |
| 1        | 10  | 10        |
| 1        | 30  | 10        |
+----------+-----+-----------+

SELECT sellerid, qty, PERCENTILE_DISC(0.75) 
WITHIN GROUP (ORDER BY qty) 
OVER(PARTITION BY sellerid) AS quartile3 FROM winsales;

+----------+-----+-----------+
| sellerid | qty | quartile3 |
+----------+-----+-----------+
| 3        | 10  | 20        |
| 3        | 15  | 20        |
| 3        | 20  | 20        |
| 3        | 30  | 20        |
| 4        | 10  | 40        |
| 4        | 40  | 40        |
| 2        | 20  | 20        |
| 2        | 20  | 20        |
| 1        | 10  | 30        |
| 1        | 10  | 30        |
| 1        | 30  | 30        |
+----------+-----+-----------+
```