

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Função APPROXIMATE PERCENTILE\$1DISC
APPROXIMATE PERCENTILE\$1DISC

APPROXIMATE PERCENTILE\$1DISC é uma função de distribuição inversa que assume um modelo de distribuição discreta. Ela pega um valor percentil e uma especificação de classificação e retorna um elemento do conjunto fornecido. A aproximação permite que a função seja executada muito mais rápido, com um baixo erro relativo de cerca de 0,5%.

Para dado valor *percentil* APPROXIMATE PERCENTILE\$1DISC usa um algoritmo de resumo quantílico para aproximação do percentil discreto da expressão na cláusula ORDER BY. APPROXIMATE PERCENTILE\$1DISC retorna o valor com o menor valor de distribuição cumulativa (em relação à mesma especificação de classificação) que é maior ou igual ao *percentil*. 

## Sintaxe
Sintaxe

```
APPROXIMATE  PERCENTILE_DISC ( percentile )
WITHIN GROUP (ORDER BY expr)
```

## Argumentos
Argumentos

 *percentil*   
Constante numérica entre 0 e 1. Nulls são ignorados no cálculo.

WITHIN GROUP ( ORDER BY *expr*)   
Cláusula que especifica valores numéricos ou de data/hora para classificação e computação do percentil. 

## Retornos


O mesmo tipo de dados que a expressão ORDER BY na cláusula WITHIN GROUP.

## Observações de uso


Se a instrução APPROXIMATE PERCENTILE\$1DISC incluir uma cláusula GROUP BY, o conjunto de resultados é limitado. O limite varia com base no tipo de nó e no número de nós. Se o limite for excedido, a função falha e retorna o seguintes erro.

```
GROUP BY limit for approximate percentile_disc exceeded.
```

Se você precisar avaliar mais grupos do que o limite permite, considere usar [Função PERCENTILE\$1CONT](r_PERCENTILE_CONT.md). 

## Exemplos
Exemplos

O seguinte exemplo retorna o número de vendas, vendas globais e o quinquagésimo valor percentil para as primeiras 10 datas. 

```
select top 10 date.caldate,
count(totalprice), sum(totalprice),
approximate percentile_disc(0.5) 
within group (order by totalprice)
from listing
join date on listing.dateid = date.dateid
group by date.caldate
order by 3 desc;

caldate    | count | sum        | percentile_disc
-----------+-------+------------+----------------
2008-01-07 |   658 | 2081400.00 |         2020.00
2008-01-02 |   614 | 2064840.00 |         2178.00
2008-07-22 |   593 | 1994256.00 |         2214.00
2008-01-26 |   595 | 1993188.00 |         2272.00
2008-02-24 |   655 | 1975345.00 |         2070.00
2008-02-04 |   616 | 1972491.00 |         1995.00
2008-02-14 |   628 | 1971759.00 |         2184.00
2008-09-01 |   600 | 1944976.00 |         2100.00
2008-07-29 |   597 | 1944488.00 |         2106.00
2008-07-23 |   592 | 1943265.00 |         1974.00
```