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.
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.
┌─most_expensi⋯lar_product─┐
1. │ Laptop │
└──────────────────────────┘