跳到主要内容
跳到主要内容

countResample

描述

Resample 组合器可以应用于 count 聚合函数,用于在固定数量的区间(N)内统计指定键列的取值次数。

示例用法

基本示例

来看一个示例。我们将创建一张包含员工 nameagewage 的表,并向其中插入一些数据:

CREATE TABLE employee_data 
(
    name String,
    age UInt8,
    wage Float32
) 
ENGINE = MergeTree()
ORDER BY tuple()

INSERT INTO employee_data (name, age, wage) VALUES
    ('John', 16, 10.0),
    ('Alice', 30, 15.0),
    ('Mary', 35, 8.0),
    ('Evelyn', 48, 11.5),
    ('David', 62, 9.9),
    ('Brian', 60, 16.0);

我们来计算年龄落在区间 [30,60)[60,75)[ 为不包含,) 为包含)人群的平均工资。由于我们使用整数来表示年龄,实际得到的年龄区间为 [30, 59][60,74]。为此,我们对 avg 聚合函数应用 Resample 组合器。

WITH avg_wage AS
(
    SELECT avgResample(30, 75, 30)(wage, age) AS original_avg_wage
    FROM employee_data
)
SELECT
    arrayMap(x -> round(x, 3), original_avg_wage) AS avg_wage_rounded
FROM avg_wage;
┌─avg_wage_rounded─┐
│ [11.5,12.95]     │
└──────────────────┘

另请参阅