说明
Resample
组合器可应用于 groupArray 聚合函数,用于
将指定键列的范围划分为固定数量的区间 (N) ,
并通过从落入每个区间的数据点中选取一个代表值
(对应最小键) 来构造结果数组。
它生成的是数据的降采样视图,而不是收集所有值。
示例用法
来看一个示例。我们将创建一个包含员工 name、age 和
wage 的表,并向其中插入一些数据:
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
函数应使用年龄列按年龄聚合姓名。为了定义所需的
区间,我们将 30、75、30 作为参数传递给 groupArrayResample
函数:
SELECT groupArrayResample(30, 75, 30)(name, age) FROM employee_data┌─groupArrayResample(30, 75, 30)(name, age)─────┐
│ [['Alice','Mary','Evelyn'],['David','Brian']] │
└───────────────────────────────────────────────┘