Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
MEDIANfunción de ventana
Calcula la mediana del rango de valores de una ventana o partición. NULLlos valores del rango se ignoran.
MEDIAN es una función de distribución inversa que asume un modelo de distribución continua.
MEDIANes una función exclusiva de nodos de cálculo. La función devuelve un error si la consulta no hace referencia a una tabla definida por el usuario o AWS Clean Rooms a una tabla del sistema.
Sintaxis
MEDIAN ( median_expression ) OVER ( [ PARTITION BY partition_expression ] )
Argumentos
- expresión_de_mediana
-
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 OVER cláusula no puede contener un orden de ventanas ni una especificación de marco de ventana.
- PARTITIONPOR partition_expression
-
Opcional. Expresión que establece el rango de registros de cada grupo de la cláusula. OVER
Tipos de datos
El tipo de valor devuelto viene determinado por el tipo de datos de expresión_de_mediana. En la tabla siguiente, se muestra el tipo de valor devuelto para cada tipo de datos de expresión_de_mediana.
Tipo de entrada | Tipo de retorno |
---|---|
NUMERIC, DECIMAL | DECIMAL |
FLOAT, DOUBLE | DOUBLE |
DATE | DATE |
Notas de uso
Si el argumento median_expression es un tipo de DECIMAL datos definido con una precisión máxima de 38 dígitos, es posible que MEDIAN devuelva un resultado impreciso o un error. Si el valor devuelto por la MEDIAN función supera los 38 dígitos, el resultado se trunca para ajustarse, lo que provoca una 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_expression con una precisión menor.
Por ejemplo, una SUM función con un DECIMAL argumento devuelve una precisión predeterminada de 38 dígitos. La escala del resultado es la misma que la escala del argumento. Así, por ejemplo, a SUM de una columna DECIMAL (5,2) devuelve un tipo de datos DECIMAL (38,2).
En el siguiente ejemplo, se usa una SUM función en el argumento median_expression de una función. MEDIAN El tipo de datos de la PRICEPAID columna es DECIMAL (8,2), por lo que la SUM función devuelve 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 en un tipo de DECIMAL datos 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
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.