

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon QLDB 中的 COUNT 函数
<a name="ql-functions.count"></a>

**重要**  
终止支持通知：现有客户将能够使用 Amazon QLDB，直到 2025 年 7 月 31 日终止支持。有关更多详细信息，请参阅[将亚马逊 QLDB 账本迁移到亚马逊 Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

在 Amazon QLDB 中，使用函数`COUNT` 返回由给定表达式定义的文档数量。此函数具有两种变体：
+ `COUNT(*)` — 计算目标表中的所有文档，无论它们是否包含空值或缺失值。
+ `COUNT(expression)` — 计算特定的现有字段或表达式中具有非空值的文档数。

**警告**  
`COUNT` 函数未经过优化，因此我们不建议在没有索引查询的情况下使用它。当您在没有索引查找的情况下运行查询时，它会调用全表扫描。这可能会导致大型表出现性能问题，包括并发冲突与事务超时。  
为避免表扫描，必须在索引字段或文档 ID 上使用*相等*运算符（`=`或`IN`）运行带有`WHERE`谓词子句的语句。有关更多信息，请参阅 [优化查询性能](working.optimize.md)。

## 语法
<a name="ql-functions.count.syntax"></a>

```
COUNT ( * | expression )
```

## Arguments
<a name="ql-functions.count.arguments"></a>

*expression*  
对其执行函数的字段名称或表达式。此参数可以是任何支持[数据类型](ql-reference.data-types.md)的参数。

## 返回类型
<a name="ql-functions.count.return-type"></a>

`int`

## 示例
<a name="ql-functions.count.examples"></a>

```
SELECT COUNT(*) FROM VehicleRegistration r WHERE r.LicensePlateNumber = 'CA762X' -- 1
SELECT COUNT(r.VIN) FROM Vehicle r WHERE r.VIN = '1N4AL11D75C109151'             -- 1
SELECT COUNT(a) FROM << { 'a' : 1 }, { 'a': 2 }, { 'a': 3 } >>                   -- 3
```

## 相关函数
<a name="ql-functions.count.related"></a>
+ [AVG](ql-functions.avg.md)
+ [MAX](ql-functions.max.md)
+ [MIN](ql-functions.min.md)
+ [SIZE](ql-functions.size.md)
+ [SUM](ql-functions.sum.md)