Le combinateur If peut être appliqué à la fonction d’agrégation any
pour sélectionner le premier élément rencontré dans une colonne donnée
qui satisfait la condition indiquée.
Dans cet exemple, nous allons créer une table contenant des données de ventes avec des indicateurs de succès,
et nous utiliserons anyIf pour sélectionner les premiers transaction_id dont le montant est supérieur
ou inférieur à 200.
Nous commençons par créer une table et y insérer des données :
CREATE TABLE sales(
transaction_id UInt32,
amount Decimal(10,2),
is_successful UInt8
)
ENGINE = MergeTree()
ORDER BY tuple();
INSERT INTO sales VALUES
(1, 100.00, 1),
(2, 150.00, 1),
(3, 155.00, 0),
(4, 300.00, 1),
(5, 250.50, 0),
(6, 175.25, 1);
SELECT
anyIf(transaction_id, amount < 200) AS tid_lt_200,
anyIf(transaction_id, amount > 200) AS tid_gt_200
FROM sales;
┌─tid_lt_200─┬─tid_gt_200─┐
│ 1 │ 4 │
└────────────┴────────────┘
Dernière modification le 29 juin 2026