clickhouse WITH TOTAL使用介绍和示例
时间: 2023-08-08 21:05:20 浏览: 139
ClickHouse 是一个支持高并发、高吞吐量、低延迟的开源列式数据库,支持 SQL 查询语言和数据仓库功能。WITH TOTAL 是 ClickHouse 中的一个特性,用于计算查询结果集的聚合值。
WITH TOTAL 的使用方式如下:
```
SELECT column1, column2, SUM(column3) FROM table_name WHERE condition GROUP BY column1, column2 WITH TOTAL
```
其中,SUM(column3) 是对 column3 列进行求和,GROUP BY column1, column2 按照 column1 和 column2 进行分组,WITH TOTAL 则是用于计算整个查询结果集的聚合值。
下面是一个示例:
```
-- 创建 test 表
CREATE TABLE test (id Int32, name String, score Float32) ENGINE = MergeTree ORDER BY id;
-- 插入数据
INSERT INTO test (id, name, score) VALUES (1, 'Alice', 90), (2, 'Bob', 85), (3, 'Alice', 95), (4, 'Bob', 80);
-- 查询每个人的最高分和总分,并计算整个结果集的聚合值
SELECT name, MAX(score) AS max_score, SUM(score) FROM test GROUP BY name WITH TOTAL;
```
运行结果如下:
```
┌─name──┬─max_score─┬─sum(score)─┐
│ Alice │ 95 │ 185 │
│ Bob │ 85 │ 165 │
│ │ 95 │ 350 │
└───────┴──────────┴────────────┘
```
其中,第三行的结果是整个查询结果集的聚合值,表示所有分数的总和为 350。
阅读全文