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

groupArrayResample

描述

Resample 组合器可以应用于groupArray 聚合函数,以 将指定键列的范围划分为固定数量的区间(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]

为了将名字聚合到数组中,我们使用groupArray聚合函数。 它接受一个参数。在我们的例子中,它是名字列。groupArrayResample 函数应该使用年龄列按照年龄聚合名字。为了定义 所需的区间,我们将307530作为参数传递给groupArrayResample 函数:

SELECT groupArrayResample(30, 75, 30)(name, age) FROM employee_data
┌─groupArrayResample(30, 75, 30)(name, age)─────┐
│ [['Alice','Mary','Evelyn'],['David','Brian']] │
└───────────────────────────────────────────────┘

另请参阅