2020-04-08 14:22:25 +00:00
|
|
|
---
|
2022-08-26 19:07:59 +00:00
|
|
|
slug: /zh/sql-reference/aggregate-functions/
|
2022-04-10 23:08:18 +00:00
|
|
|
sidebar_label: 聚合函数
|
|
|
|
sidebar_position: 33
|
2020-04-08 14:22:25 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
# 聚合函数 {#aggregate-functions}
|
|
|
|
|
2021-01-28 02:11:43 +00:00
|
|
|
聚合函数如数据库专家预期的方式 [正常](http://www.sql-tutorial.com/sql-aggregate-functions-sql-tutorial) 工作。
|
2020-04-08 14:22:25 +00:00
|
|
|
|
|
|
|
ClickHouse还支持:
|
|
|
|
|
2020-04-30 18:19:18 +00:00
|
|
|
- [参数聚合函数](parametric-functions.md#aggregate_functions_parametric),它接受除列之外的其他参数。
|
2020-04-08 14:22:25 +00:00
|
|
|
- [组合器](combinators.md#aggregate_functions_combinators),这改变了聚合函数的行为。
|
|
|
|
|
|
|
|
## 空处理 {#null-processing}
|
|
|
|
|
2021-01-28 02:11:43 +00:00
|
|
|
在聚合过程中,所有 `NULL` 被跳过。
|
2020-04-08 14:22:25 +00:00
|
|
|
|
|
|
|
**例:**
|
|
|
|
|
|
|
|
考虑这个表:
|
|
|
|
|
|
|
|
``` text
|
|
|
|
┌─x─┬────y─┐
|
|
|
|
│ 1 │ 2 │
|
|
|
|
│ 2 │ ᴺᵁᴸᴸ │
|
|
|
|
│ 3 │ 2 │
|
|
|
|
│ 3 │ 3 │
|
|
|
|
│ 3 │ ᴺᵁᴸᴸ │
|
|
|
|
└───┴──────┘
|
|
|
|
```
|
|
|
|
|
2021-01-28 02:11:43 +00:00
|
|
|
比方说,你需要计算 `y` 列的总数:
|
2020-04-08 14:22:25 +00:00
|
|
|
|
|
|
|
``` sql
|
|
|
|
SELECT sum(y) FROM t_null_big
|
|
|
|
```
|
|
|
|
|
|
|
|
┌─sum(y)─┐
|
|
|
|
│ 7 │
|
|
|
|
└────────┘
|
|
|
|
|
|
|
|
|
2021-01-28 02:11:43 +00:00
|
|
|
现在你可以使用 `groupArray` 函数用 `y` 列创建一个数组:
|
2020-04-08 14:22:25 +00:00
|
|
|
|
|
|
|
``` sql
|
|
|
|
SELECT groupArray(y) FROM t_null_big
|
|
|
|
```
|
|
|
|
|
|
|
|
``` text
|
|
|
|
┌─groupArray(y)─┐
|
|
|
|
│ [2,2,3] │
|
|
|
|
└───────────────┘
|
|
|
|
```
|
|
|
|
|
2021-01-28 02:11:43 +00:00
|
|
|
在 `groupArray` 生成的数组中不包括 `NULL`。
|
2020-04-08 14:22:25 +00:00
|
|
|
|
2021-09-19 20:05:54 +00:00
|
|
|
[原始文章](https://clickhouse.com/docs/en/query_language/agg_functions/) <!--hide-->
|