| 列类型 | AggregateFunction(func, types…),如 AggregateFunction(uniq, UInt64) |
|---|---|
| 写入 | uniqState(x)、avgState(x) 等带 State 后缀的函数 |
| 查询 | uniqMerge(col)、avgMerge(col) 等带 Merge 后缀的函数 |
示例
示例
CREATE TABLE agg_daily
(
d Date,
n UInt64,
u AggregateFunction(uniq, UInt64),
a AggregateFunction(avg, Float64)
)
ENGINE = AggregatingMergeTree
ORDER BY (d, n);
INSERT INTO agg_daily SELECT d, n, uniqState(id), avgState(v)
FROM events GROUP BY d, n;
SELECT d, n, uniqMerge(u) AS uv, avgMerge(a) AS avg_v
FROM agg_daily GROUP BY d, n;状态列直接 SELECT 出来是二进制内容,必须用对应 Merge 函数读取;状态可在多个部分间继续合并。