Saltar al contenido principal

Descripción

El combinador If puede aplicarse a la función argMax para encontrar el valor de arg que corresponde al valor máximo de val en las filas donde la condición es verdadera, mediante la función de combinador agregado argMaxIf. La función argMaxIf es útil cuando necesitas encontrar el valor asociado al valor máximo de un conjunto de datos, pero solo para las filas que cumplen una condición específica.

Ejemplo de uso

En este ejemplo, usaremos un conjunto de datos de muestra sobre ventas de productos para mostrar cómo funciona argMaxIf. Encontraremos el nombre del producto con el precio más alto, pero solo entre los productos que se hayan vendido al menos 10 veces.
Query
CREATE TABLE product_sales
(
    product_name String,
    price Decimal32(2),
    sales_count UInt32
) ENGINE = Memory;

INSERT INTO product_sales VALUES
    ('Laptop', 999.99, 10),
    ('Phone', 499.99, 15),
    ('Tablet', 299.99, 0),
    ('Watch', 1199.99, 5),
    ('Headphones', 79.99, 20);

SELECT argMaxIf(product_name, price, sales_count >= 10) AS most_expensive_popular_product
FROM product_sales;
La función argMaxIf devolverá el nombre del producto que tenga el precio más alto entre todos los productos vendidos al menos 10 veces (sales_count >= 10). En este caso, devolverá ‘Laptop’, ya que tiene el precio más alto (999.99) entre los productos populares.
Response
   ┌─most_expensi⋯lar_product─┐
1. │ Laptop                   │
   └──────────────────────────┘

Véase también

Última modificación el 10 de junio de 2026