El combinador If puede aplicarse a la función avg
para calcular la media aritmética de los valores de las filas en las que se cumple la condición,
mediante la función de combinador de agregación avgIf.
En este ejemplo, crearemos una tabla que almacena datos de ventas con indicadores de éxito,
y usaremos avgIf para calcular el importe promedio de venta de las transacciones correctas.
CREATE TABLE sales(
transaction_id UInt32,
amount Decimal(10,2),
is_successful UInt8
) ENGINE = MergeTree
ORDER BY ();
INSERT INTO sales VALUES
(1, 100.50, 1),
(2, 200.75, 1),
(3, 150.25, 0),
(4, 300.00, 1),
(5, 250.50, 0),
(6, 175.25, 1);
SELECT
avgIf(amount, is_successful = 1) AS avg_successful_sale
FROM sales;
La función avgIf calculará el importe medio solo para las filas en las que is_successful = 1.
En este caso, calculará la media de los importes: 100.50, 200.75, 300.00 y 175.25.
┌─avg_successful_sale─┐
1. │ 193.88 │
└─────────────────────┘
Última modificación el 10 de junio de 2026