描述
If 组合器可应用于 avg
函数,使用 avgIf 聚合组合器函数计算条件为 true 的行中各值的算术平均值。
示例用法
在这个示例中,我们将创建一张用于存储带有成功标记的销售数据的表,
并使用 avgIf 计算成功交易的平均销售额。
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;avgIf 函数仅对 is_successful = 1 的行计算平均金额。
在这种情况下,它会对以下金额求平均值:100.50、200.75、300.00 和 175.25。
┌─avg_successful_sale─┐
1. │ 193.88 │
└─────────────────────┘