> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# argMinIf

> Exemple d’utilisation du combinateur argMinIf

<div id="description">
  ## Description
</div>

Le combinateur [`If`](/fr/reference/functions/aggregate-functions/combinators#-if) peut être appliqué à la fonction [`argMin`](/fr/reference/functions/aggregate-functions/argMin)
pour trouver la valeur de `arg` correspondant à la valeur minimale de `val` pour les lignes où la condition est vraie,
à l’aide de la fonction de combinateur d’agrégation `argMinIf`.

La fonction `argMinIf` est utile lorsque vous devez trouver la valeur associée
à la valeur minimale dans un ensemble de données, mais uniquement pour les lignes qui remplissent une
condition spécifique.

<div id="example-usage">
  ## Exemple d’utilisation
</div>

Dans cet exemple, nous allons créer une table qui stocke les prix des produits et leurs horodatages,
puis utiliser `argMinIf` pour trouver le prix le plus bas de chaque produit lorsqu’il est en stock.

```sql title="Query" theme={null}
CREATE TABLE product_prices(
    product_id UInt32,
    price Decimal(10,2),
    timestamp DateTime,
    in_stock UInt8
) ENGINE = MergeTree
ORDER BY ();

INSERT INTO product_prices VALUES
    (1, 10.99, '2024-01-01 10:00:00', 1),
    (1, 9.99, '2024-01-01 10:05:00', 1),
    (1, 11.99, '2024-01-01 10:10:00', 0),
    (2, 20.99, '2024-01-01 11:00:00', 1),
    (2, 19.99, '2024-01-01 11:05:00', 1),
    (2, 21.99, '2024-01-01 11:10:00', 1);

SELECT
    product_id,
    argMinIf(price, timestamp, in_stock = 1) AS lowest_price_when_in_stock
FROM product_prices
GROUP BY product_id;
```

La fonction `argMinIf` trouvera le prix correspondant au horodatage le plus ancien pour chaque produit,
mais uniquement en tenant compte des lignes où `in_stock = 1`. Par exemple :

* Produit 1 : parmi les lignes en stock, 10.99 a le horodatage le plus ancien (10:00:00)
* Produit 2 : parmi les lignes en stock, 20.99 a le horodatage le plus ancien (11:00:00)

```response title="Response" theme={null}
   ┌─product_id─┬─lowest_price_when_in_stock─┐
1. │          1 │                      10.99 │
2. │          2 │                      20.99 │
   └────────────┴────────────────────────────┘
```

<div id="see-also">
  ## Voir aussi
</div>

* [`argMin`](/fr/reference/functions/aggregate-functions/argMin)
* [`argMax`](/fr/reference/functions/aggregate-functions/argMax)
* [`argMaxIf`](/fr/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf)
* [`Combinateur If`](/fr/reference/functions/aggregate-functions/combinators#-if)
