COUNT_DISTINCT 函数用于统计字段中不重复项的数量。
语法
COUNT_DISTINCT(X)
参数
X- 字段或包含要统计的项的表达式。
COUNT_DISTINCT 函数的工作原理
COUNT_DISTINCT 函数接受一个参数,该参数可以是维度的名称,也可以是不产生聚合结果的表达式。COUNT_DISTINCT 会返回该字段或表达式中不重复项的总数。
如需统计所有项(包括重复项),请使用 COUNT。
示例
| Example formula | Output |
|---|---|
COUNT_DISTINCT(user_id) |
22,854,921 |
COUNT_DISTINCT(order_id) |
497,091,812 |
COUNT_DISTINCT 的限制
使用 COUNT_DISTINCT 函数时,请注意以下事项:
COUNT_DISTINCT 适用于未聚合的数据
您无法将此函数应用于指标(包括聚合 类型为自动 的字段)或另一个聚合函数的结果表达式。例如,Google Analytics 数据源中的 COUNT_DISTINCT(Sessions) 等公式会产生错误,因为 Sessions 是自动 聚合的字段。
对于 BigQuery 数据,请考虑使用 APPROX_COUNT_DISTINCT
为避免在使用 BigQuery 数据源时可能产生更高的查询费用,请考虑使用 APPROX_COUNT_DISTINCT。
函数下推导致结果可变
为了优化性能,数据洞察会尽可能尝试将 COUNT_DISTINCT 的计算委托(或“下推”)给底层数据源。由于实际计数是由连接的系统而非数据洞察执行的,因此结果可能会因该系统实现不同计数的方式而异。
例如,可能导致不同计数差异的因素包括:
- SQL 数据库:不同的 SQL 方言可能会以独特的方式处理大小写敏感度、尾随空格比较或 null 值计数。
- 基于文件的来源:对于文件连接器(例如 CSV 文件),结果取决于目标网站解析行为和内部引擎操作。
- SaaS API:云服务和 SaaS 连接器受其 API 功能的限制,这些功能可能会返回近似计数或应用特定的过滤逻辑。