Description
Le combinateur If peut être appliqué à la fonction argMax
pour trouver la valeur de arg correspondant à la valeur maximale de val pour les lignes où la condition est vraie,
à l’aide de la fonction de combinateur d’agrégation argMaxIf.
La fonction argMaxIf est utile lorsque vous devez trouver la valeur associée à
la valeur maximale dans un jeu de données, mais uniquement pour les lignes qui remplissent une
condition spécifique.
Exemple d'utilisation
Dans cet exemple, nous utiliserons un échantillon de données de ventes de produits pour montrer comment
argMaxIf fonctionne. Nous trouverons le nom du produit au prix le plus élevé, mais
uniquement parmi les produits qui ont été vendus au moins 10 fois.
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 fonction argMaxIf renverra le nom du produit dont le prix est le plus élevé
parmi tous les produits vendus au moins 10 fois (sales_count >= 10).
Dans ce cas, elle renverra 'Laptop', puisque c'est le produit au prix le plus élevé (999.99)
parmi les produits populaires.
┌─most_expensi⋯lar_product─┐
1. │ Laptop │
└──────────────────────────┘