El combinador If se puede aplicar a la función de agregado any
para seleccionar el primer elemento encontrado en una columna determinada
que cumpla la condición indicada.
En este ejemplo, crearemos una tabla que almacena datos de ventas con indicadores de éxito
y usaremos anyIf para seleccionar los primeros transaction_id con importes por encima y
por debajo de 200.
Primero creamos una tabla e insertamos datos en ella:
CREATE TABLE sales(
transaction_id UInt32,
amount Decimal(10,2),
is_successful UInt8
)
ENGINE = MergeTree()
ORDER BY tuple();
INSERT INTO sales VALUES
(1, 100.00, 1),
(2, 150.00, 1),
(3, 155.00, 0),
(4, 300.00, 1),
(5, 250.50, 0),
(6, 175.25, 1);
SELECT
anyIf(transaction_id, amount < 200) AS tid_lt_200,
anyIf(transaction_id, amount > 200) AS tid_gt_200
FROM sales;
┌─tid_lt_200─┬─tid_gt_200─┐
│ 1 │ 4 │
└────────────┴────────────┘
Última modificación el 10 de junio de 2026