Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Se aplica a:Punto de conexión de SQL Analytics en Microsoft Fabric y Warehouse en Microsoft Fabric
La MEDIAN función devuelve la mediana exacta, o percentil 50, de los valores noNULL numéricos. Puede usarlo como una función de agregado y una función de ventana (analítica):
- Uso agregado: Devuelve la mediana de todo un grupo.
- Uso de ventanas: Devuelve la mediana de cada partición mientras conserva la salida a nivel de fila.
Convenciones de sintaxis de Transact-SQL
Syntax
Sintaxis de función de agregación:
MEDIAN ( numeric_expression )
Sintaxis de función analítica:
MEDIAN ( numeric_expression ) OVER ( [ <partition_by_clause> ] )
Argumentos
numeric_expression
La expresión numérica cuya mediana se calcula. Los tipos numéricos exactos soportados son int, bigint, smallint, tinyint, numericdecimal, bit, smallmoney, , y money. Los tipos numéricos aproximados soportados son float y real.
Cláusula OVER
El partition_by_clause divide el conjunto de resultados generado por la FROM cláusula en particiones y la función se aplica a cada partición.
Si no especificas partition_by_clause, la función trata todas las filas del conjunto de resultados de la consulta como una sola partición.
La OVER cláusula no soporta ORDER BY, ROWS, ni RANGE para MEDIAN.
Para obtener más información, vea CLÁUSULA SELECT - OVER (Transact-SQL).
Tipos de retorno
Devuelve float(53).
Remarks
MEDIAN calcula el percentil 50 continuo de los valores ordenados no deNULL entrada. Para un número par de valores de entrada, la función interpola entre los dos valores intermedios. El resultado puede no ser un valor que exista en las filas de entrada.
MEDIAN es equivalente a PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY numeric_expression) para el uso agregado. La forma analítica tiene semántica equivalente en percentil continua dentro de cada partición.
Se omiten los valores NULL. Si todos los valores de entrada son NULL, o si ninguna fila califica, MEDIAN devuelve NULL. Cuando ANSI_WARNINGS es ON, eliminar NULL valores produce la advertencia agregada estándar.
MEDIAN es no determinista porque los cálculos en coma flotante en caminos de ejecución paralelos pueden producir ligeras variaciones. Para más información, vea Funciones deterministas y no deterministas.
DISTINCT no es compatible. No se admiten expresiones de personaje, fecha, hora y hora de cita.
La MEDIAN función está disponible en Fabric Data Warehouse y en el endpoint de analítica SQL de Fabric elementos. La MEDIAN función no está soportada en SQL Server, Azure SQL Database, Azure SQL Managed Instance ni SQL database en Fabric.
Caso de uso
Úsalo MEDIAN cuando un promedio puede verse distorsionado por valores inusualmente altos o bajos. Por ejemplo, el valor de orden mediano, el tiempo de respuesta o la cantidad de la reclamación suelen representar una observación típica de forma más clara que la media aritmética. La forma agregada resume los grupos, y la forma analítica añade un punto de referencia de partición a cada fila de detalle.
Examples
R. Calcular una mediana agregada
Este ejemplo devuelve la mediana de ocho valores. Como la entrada tiene un número par de filas, MEDIAN interpola entre 4 y 5.
SELECT MEDIAN(value) AS MedianValue
FROM (VALUES (1), (2), (3), (4), (5), (6), (7), (8)) AS t(value);
El resultado es 4.5.
B. Calcula una mediana para cada grupo
Este ejemplo calcula la cantidad mediana de pedidos para cada región de ventas.
WITH SalesOrders AS (
SELECT *
FROM (VALUES
('North', 120.00),
('North', 220.00),
('North', 320.00),
('South', 150.00),
('South', 250.00),
('South', 450.00)
) AS v(region, order_amount)
)
SELECT
region,
MEDIAN(order_amount) AS MedianOrderAmount
FROM SalesOrders
GROUP BY region;
C. Ignorar los valores NULL
Este ejemplo ignora la NULL entrada y calcula la mediana a partir de los valores restantes.
SELECT MEDIAN(value) AS MedianValue
FROM (VALUES (1), (2), (NULL), (3), (4)) AS t(value);
Si cada valor de entrada es NULL, la función devuelve NULL.
D. Calcular una mediana de ventana particionada
Este ejemplo añade la latencia mediana de cada servicio a cada fila de petición.
WITH ServiceLatency AS (
SELECT *
FROM (VALUES
('Checkout', 'req-001', 180),
('Checkout', 'req-002', 220),
('Checkout', 'req-003', 260),
('Search', 'req-010', 90),
('Search', 'req-011', 110),
('Search', 'req-012', 130)
) AS v(service, request_id, latency_ms)
)
SELECT
service,
request_id,
latency_ms,
MEDIAN(latency_ms) OVER (PARTITION BY service) AS ServiceMedianLatency
FROM ServiceLatency;