

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Función de ventana MEDIAN
<a name="r_WF_MEDIAN"></a>

Calcula el valor mediano para el rango de valores en una ventana o partición. Se ignoran los valores NULL en el rango.

MEDIAN es una función de distribución inversa que asume un modelo de distribución continua.

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

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

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

 *expresión\$1de\$1mediana*   
Una expresión, como un nombre de columna, que proporciona un valor para los cuales determinar la media. La expresión debe tener un tipo de dato numérico o de fecha y hora o ser implícitamente convertible en uno.

OVER   
Una cláusula que especifica la partición de ventana. La cláusula OVER no puede contener una especificación de marco de ventana u ordenamiento.

PARTITION BY *partition\$1expression*   
Opcional. Una expresión que establece el rango de registros para cada grupo en la cláusula OVER.

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

El tipo de valor devuelto viene determinado por el tipo de datos de *expresión\$1de\$1mediana*. En la tabla siguiente, se muestra el tipo de valor devuelto para cada tipo de datos de *expresión\$1de\$1mediana*.

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

## Notas de uso
<a name="r_WF_MEDIAN-data-usage-notes"></a>

Si el argumento *expresión\$1de\$1mediana* es un tipo de dato DECIMAL definido con la precisión máxima de 38 dígitos, es posible que MEDIAN devuelva un resultado impreciso o un error. Si el valor de retorno de la función MEDIAN supera los 38 dígitos, el resultado se trunca para adaptarse, lo que genera pérdida de precisión. Si, durante la interpolación, un resultado intermedio supera la precisión máxima, se produce un desbordamiento numérico y la función devuelve un error. Para evitar estas condiciones, recomendamos usar un tipo de dato con menor precisión o emitir el argumento *median\$1expression* con una precisión menor. 

Por ejemplo, la función SUM con un argumento DECIMAL devuelve una precisión predeterminada de 38 dígitos. La escala del resultado es la misma que la escala del argumento. Entonces, por ejemplo, un SUM de una columna DECIMAL(5,2) devuelve un tipo de dato DECIMAL(38,2).

En el siguiente ejemplo, se utiliza una función SUM en el argumento *median\$1expression (expresión\$1de\$1mediana)* de una función MEDIAN. El tipo de datos de la columna PRICEPAID es DECIMAL (8,2), por lo que la función SUM devuelve un DECIMAL (38,2).

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

Para evitar una posible pérdida de precisión o un error de desbordamiento, convierta el resultado a un tipo de dato DECIMAL con menor precisión, como se muestra en el siguiente ejemplo.

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

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

 En el siguiente ejemplo, se calcula la cantidad media de ventas 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 ver una descripción de la tabla WINSALES, consulte [Tabla de muestra para ejemplos de funciones de ventana](c_Window_functions.md#r_Window_function_example). 