Passer au contenu principal

Description

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.

Exemple d’utilisation

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 :
Query
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;
Response
┌─tid_lt_200─┬─tid_gt_200─┐
│          1 │          4 │
└────────────┴────────────┘

Voir aussi

Dernière modification le 29 juin 2026