Passer au contenu principal

Description

Le combinateur If peut être appliqué à la fonction avg pour calculer la moyenne arithmétique des valeurs des lignes pour lesquelles la condition est true, à l’aide de la fonction de combinateur d’agrégation avgIf.

Exemple d’utilisation

Dans cet exemple, nous allons créer une table qui stocke des données de ventes avec des indicateurs de succès, et nous utiliserons avgIf pour calculer le montant moyen des ventes pour les transactions réussies.
Query
CREATE TABLE sales(
    transaction_id UInt32,
    amount Decimal(10,2),
    is_successful UInt8
) ENGINE = MergeTree
ORDER BY ();

INSERT INTO sales VALUES
    (1, 100.50, 1),
    (2, 200.75, 1),
    (3, 150.25, 0),
    (4, 300.00, 1),
    (5, 250.50, 0),
    (6, 175.25, 1);

SELECT
    avgIf(amount, is_successful = 1) AS avg_successful_sale
FROM sales;
La fonction avgIf calculera le montant moyen uniquement sur les lignes où is_successful = 1. Dans ce cas, elle fera la moyenne des montants suivants : 100.50, 200.75, 300.00 et 175.25.
Response
   ┌─avg_successful_sale─┐
1. │              193.88 │
   └─────────────────────┘

Voir aussi

Dernière modification le 29 juin 2026