---
title: 如何快速获得表中某列的 NDV 值-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 如何快速获得表中某列的 NDV 值相关的常见问题和使用技巧，帮助您快速解决 如何快速获得表中某列的 NDV 值的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 如何快速获得表中某列的 NDV 值

更新时间：2026-05-15 09:06

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：How-to  

本文查看某个列的区分度，以便合理设计复合索引中字段排序顺序。

通过函数 `approx_count_distinct` 对参数列去重后的行数进行计算，返回行数值，且该值是近似值，该函数可以用于进一步计算被引用的列的选择性。

与函数 `COUNT(DISTINCT x)` 相比，`APPROX_COUNT_DISTINCT` 返回的是近似值，所以计算速度极快。在处理大量级的数据时 `COUNT(DISTINCT x)` 经常要花费很长的时间，使用 `APPROX_COUNT_DISTINCT` 牺牲了少量的精确度，却换来了计算效率的极大提升。

示例：返回列 `col2` 不重复值的个数。

```
obclient> SELECT APPROX_COUNT_DISTINCT(col2) FROM tbl1;

```

```
+-----------------------------+
| APPROX_COUNT_DISTINCT(COL2) |
+-----------------------------+
|                           5 |
+-----------------------------+
1 row in set

```

有关 `APPROX_COUNT_DISTINCT` 的详细介绍，参见 [APPROX_COUNT_DISTINCT](https://www.oceanbase.com/docs/common-oceanbase-database-0000000001967406)。

## 适用版本

OceanBase 数据库 V2.x 和 V3.x 版本。

Previous

[如何人工控制 CTE 的展开与物化？](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217858)

Next

[OceanBase 数据库 V4.x 版本中排查 IO 问题的方法以及 IO 相关的日志和视图](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000624471) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
