mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-17 22:10:54 +00:00
![Ivan Blinkov](/assets/img/avatar_default.png)
* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
---
|
|
machine_translated: true
|
|
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
toc_folder_title: "\u805A\u5408\u51FD\u6570"
|
|
toc_priority: 33
|
|
toc_title: "\u5BFC\u8A00"
|
|
---
|
|
|
|
# 聚合函数 {#aggregate-functions}
|
|
|
|
聚合函数在 [正常](http://www.sql-tutorial.com/sql-aggregate-functions-sql-tutorial) 方式如预期的数据库专家。
|
|
|
|
ClickHouse还支持:
|
|
|
|
- [参数聚合函数](parametric-functions.md#aggregate_functions_parametric),它接受除列之外的其他参数。
|
|
- [组合器](combinators.md#aggregate_functions_combinators),这改变了聚合函数的行为。
|
|
|
|
## 空处理 {#null-processing}
|
|
|
|
在聚合过程中,所有 `NULL`s被跳过。
|
|
|
|
**例:**
|
|
|
|
考虑这个表:
|
|
|
|
``` text
|
|
┌─x─┬────y─┐
|
|
│ 1 │ 2 │
|
|
│ 2 │ ᴺᵁᴸᴸ │
|
|
│ 3 │ 2 │
|
|
│ 3 │ 3 │
|
|
│ 3 │ ᴺᵁᴸᴸ │
|
|
└───┴──────┘
|
|
```
|
|
|
|
比方说,你需要在总的值 `y` 列:
|
|
|
|
``` sql
|
|
SELECT sum(y) FROM t_null_big
|
|
```
|
|
|
|
┌─sum(y)─┐
|
|
│ 7 │
|
|
└────────┘
|
|
|
|
该 `sum` 函数解释 `NULL` 作为 `0`. 特别是,这意味着,如果函数接收输入的选择,其中所有的值 `NULL`,那么结果将是 `0`,不 `NULL`.
|
|
|
|
现在你可以使用 `groupArray` 函数从创建一个数组 `y` 列:
|
|
|
|
``` sql
|
|
SELECT groupArray(y) FROM t_null_big
|
|
```
|
|
|
|
``` text
|
|
┌─groupArray(y)─┐
|
|
│ [2,2,3] │
|
|
└───────────────┘
|
|
```
|
|
|
|
`groupArray` 不包括 `NULL` 在生成的数组中。
|
|
|
|
[原始文章](https://clickhouse.tech/docs/en/query_language/agg_functions/) <!--hide-->
|