

 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 MEDIAN
<a name="r_MEDIAN"></a>

Calcula el valor medio del rango de valores. Los valores `NULL` del rango se ignoran.

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

MEDIAN es un caso especial de [PERCENTILE\$1CONT](r_PERCENTILE_CONT.md).

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

```
MEDIAN(median_expression)
```

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

 *expresión\$1de\$1mediana*   
La columna o expresión de destino sobre la que opera la función.

## Tipos de datos
<a name="r_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_MEDIAN.html)

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

Si el argumento *median\$1expression* 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. 

Si una instrucción incluye varias llamadas a funciones de agregación basadas en ordenación (LISTAGG, PERCENTILE\$1CONT o MEDIAN), todas deben usar los mismos valores ORDER BY. Tenga en cuenta que MEDIAN aplica un comando ORDER BY implícito en el valor de expresión. 

Por ejemplo, la siguiente instrucción devuelve un error. 

```
SELECT TOP 10 salesid, SUM(pricepaid), 
PERCENTILE_CONT(0.6) WITHIN GROUP(ORDER BY salesid),
MEDIAN(pricepaid)
FROM sales 
GROUP BY salesid, pricepaid;

An error occurred when executing the SQL command:
SELECT TOP 10 salesid, SUM(pricepaid), 
PERCENTILE_CONT(0.6) WITHIN GROUP(ORDER BY salesid),
MEDIAN(pricepaid)
FROM sales 
GROUP BY salesid, pricepaid;

ERROR: within group ORDER BY clauses for aggregate functions must be the same
```

La siguiente instrucción se ejecuta correctamente. 

```
SELECT TOP 10 salesid, SUM(pricepaid), 
PERCENTILE_CONT(0.6) WITHIN GROUP(ORDER BY salesid),
MEDIAN(salesid)
FROM sales 
GROUP BY salesid, pricepaid;
```

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

En los siguientes ejemplos se utiliza la base de datos de ejemplo TICKIT. Para obtener más información, consulte [Base de datos de muestra](c_sampledb.md).

En el siguiente ejemplo, se muestra que MEDIAN produce los mismos resultados que PERCENTILE\$1CONT(0.5). 

```
SELECT TOP 10 DISTINCT sellerid, qtysold, 
PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY qtysold),
MEDIAN(qtysold) 
FROM sales
GROUP BY sellerid, qtysold;

+----------+---------+-----------------+--------+
| sellerid | qtysold | percentile_cont | median |
+----------+---------+-----------------+--------+
|        2 |       2 |               2 |      2 |
|       26 |       1 |               1 |      1 |
|       33 |       1 |               1 |      1 |
|       38 |       1 |               1 |      1 |
|       43 |       1 |               1 |      1 |
|       48 |       2 |               2 |      2 |
|       48 |       3 |               3 |      3 |
|       77 |       4 |               4 |      4 |
|       85 |       4 |               4 |      4 |
|       95 |       2 |               2 |      2 |
+----------+---------+-----------------+--------+
```

En el siguiente ejemplo se encuentra la cantidad media vendida para cada sellerid.

```
SELECT sellerid, 
MEDIAN(qtysold)
FROM sales
GROUP BY sellerid
ORDER BY sellerid
LIMIT 10;

+----------+--------+
| sellerid | median |
+----------+--------+
|        1 |    1.5 |
|        2 |      2 |
|        3 |      2 |
|        4 |      2 |
|        5 |      1 |
|        6 |      1 |
|        7 |    1.5 |
|        8 |      1 |
|        9 |      4 |
|       12 |      2 |
+----------+--------+
```

Para comprobar los resultados de la consulta anterior del primer sellerid, use el siguiente ejemplo.

```
SELECT qtysold 
FROM sales 
WHERE sellerid=1;

+---------+
| qtysold |
+---------+
|       2 |
|       1 |
+---------+
```