

 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 de janela MEDIAN
<a name="r_WF_MEDIAN"></a>

Calcula o valor mediano para o intervalo valores em uma janela ou partição. Valores NULL no intervalo são ignorados.

MEDIAN é uma função de distribuição inversa que assume um modelo de distribuição contínua.

## Sintaxe
<a name="r_WF_MEDIAN-synopsis"></a>

```
MEDIAN ( median_expression )
OVER ( [ PARTITION BY partition_expression ] )
```

## Argumentos
<a name="r_WF_MEDIAN-arguments"></a>

 *median\$1expression*   
Uma expressão, tal como um nome de coluna, que fornece os valores para os quais determinar a mediana. A expressão deve ter um tipo de dados numérico ou de datetime ou ser implicitamente conversível para um.

OVER   
Uma cláusula que especifica o particionamento da janela. A cláusula OVER não pode conter uma especificação de ordenação de janela ou de quadro de janela.

PARTITION BY *partition\$1expression*   
Opcional. Uma expressão que define o intervalo de registros para cada grupo na cláusula OVER.

## Tipos de dados
<a name="r_WF_MEDIAN-data-types"></a>

O tipo de retorno é determinado pelo tipo de dados de *median\$1expression*. A tabela a seguir mostra o tipo de retorno para cada tipo de dados de *median\$1expression*.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/dg/r_WF_MEDIAN.html)

## Observações de uso
<a name="r_WF_MEDIAN-data-usage-notes"></a>

Se o argumento de *median\$1expression* é um tipo de dados DECIMAL com a precisão máxima de 38 dígitos, é possível que MEDIAN retorne um resultado impreciso ou um erro. Se o valor de retorno da função MEDIAN excede 38 dígitos, o resultado é truncado, o que causa a perda de precisão. Se, durante a interpolação, um resultado intermediário excede a precisão máxima, um excedente numérico ocorre e função retorna um erro. Para evitar essas condições, recomendamos o uso de um tipo de dados com menor precisão ou a conversão do argumento *median\$1expression* para uma precisão mais baixa. 

Por exemplo, uma função SUM com um argumento DECIMAL retorna uma precisão padrão de 38 dígitos. A escala do resultado é a mesma que a escala do argumento. Portanto, por exemplo, uma SUM de uma coluna DECIMAL(5,2) retorna um tipo de dados DECIMAL(38,2).

O seguinte exemplo usa uma função SUM no argumento *median\$1expression* de uma função MEDIAN. O tipo de dados de coluna PRICEPAID é DECIMAL (8,2), portanto a função SUM retorna DECIMAL(38,2).

```
select salesid, sum(pricepaid), median(sum(pricepaid)) 
over() from sales where salesid < 10 group by salesid;
```

Para evitar a perda potencial de precisão ou um erro de sobrecarga, converta o resultado para um tipo de dados DECIMAL com menor precisão, conforme exibido no exemplo a seguir.

```
select salesid, sum(pricepaid), median(sum(pricepaid)::decimal(30,2)) 
over() from sales where salesid < 10 group by salesid;
```

## Exemplos
<a name="r_WF_MEDIAN-examples"></a>

 O seguinte exemplo calcula a quantidade mediana de vendas para cada vendedor: 

```
select sellerid, qty, median(qty) 
over (partition by sellerid) 
from winsales
order by sellerid;


sellerid	qty	median
---------------------------
1		10	10.0
1		10	10.0
1		30	10.0
2		20	20.0
2		20	20.0
3		10	17.5
3		15	17.5
3		20	17.5
3		30	17.5
4		10	25.0
4		40	25.0
```

Para uma descrição da tabela WINSALES, consulte [Amostra de tabela para exemplos de funções de janela](c_Window_functions.md#r_Window_function_example). 