| 写法 | SELECT … FROM t [FINAL] WHERE … |
|---|---|
| 作用范围 | ReplacingMergeTree、CollapsingMergeTree、SummingMergeTree 等家族 |
| 替代方案 | 对聚合并发要求高时用 GROUP BY + argMax 或预聚合表替代全表 FINAL |
示例
示例
-- 取每个 id 的最新一行(ReplacingMergeTree 语义)
SELECT id, name, ts
FROM users FINAL
WHERE id IN (1, 2, 3);
-- 等价的手写去重方式
SELECT id, argMax(name, ts) AS name, max(ts) AS ts
FROM users
WHERE id IN (1, 2, 3)
GROUP BY id;FINAL 的行为与后台合并进度有关:未合并的重复行由查询时处理,所以结果始终符合语义,只是慢。