Pular para o conteúdo principal

Descrição

O combinador If pode ser aplicado à função argMax para encontrar o valor de arg que corresponde ao valor máximo de val nas linhas em que a condição é verdadeira, usando a função de combinador de agregação argMaxIf. A função argMaxIf é útil quando você precisa encontrar o valor associado ao valor máximo em um conjunto de dados, mas apenas nas linhas que atendem a uma condição específica.

Exemplo de uso

Neste exemplo, usaremos um conjunto de dados de vendas de produtos para demonstrar como argMaxIf funciona. Vamos encontrar o nome do produto com o maior preço, mas apenas entre os produtos que foram vendidos pelo menos 10 vezes.
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;
A função argMaxIf retornará o nome do produto com o maior preço entre todos os produtos vendidos pelo menos 10 vezes (sales_count >= 10). Neste caso, ela retornará ‘Laptop’, pois é o produto com o maior preço (999.99) entre os produtos populares.
Response
   ┌─most_expensi⋯lar_product─┐
1. │ Laptop                   │
   └──────────────────────────┘

Veja também

Última modificação em 10 de junho de 2026