类别:

数据指标函数

DUPLICATE_COUNT

返回具有重复项的列值的数量,包括 NULL 值。

语法

SNOWFLAKE.CORE.DUPLICATE_COUNT(<query>)
Copy

实参

query

指定对表或视图进行 SQL 查询。

允许的数据类型

query 中引用的列必须具有以下数据类型之一:

  • FLOAT

  • NUMBER

  • TIMESTAMP_LTZ

  • TIMESTAMP_NTZ

  • TIMESTAMP_TZ

  • VARCHAR

返回

该函数返回一个数据类型为 NUMBER 的标量值。

访问控制要求

要使用系统 DMF,请选择以下访问控制方法之一:

  • 将 DATA_METRIC_USER 数据库角色授予给表所有者角色,该角色对表具有 OWNERSHIP 权限。此数据库角色对 SNOWFLAKE.CORE 架构具有 USAGE 权限,对 SNOWFLAKE.CORE 架构中的所有系统 DMFs 具有 USAGE 权限。

    此外,还将下表中的权限授予给表所有者角色:

    权限

    对象

    备注

    EXECUTE DATA METRIC FUNCTION

    账户

    通过此权限,您可以控制哪些角色有权访问无服务器计算资源以调用系统 DMF。

    USAGE

    数据库、架构

    这些对象是在 query 中包含引用表的数据库和架构。

  • 将表中的权限授予给表所有者角色,并将以下权限授予给表所有者角色:

  • 使用 ACCOUNTADMIN 角色。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

示例

确定 SSN 列中重复的 US 社会保险号的数量:

SELECT SNOWFLAKE.CORE.DUPLICATE_COUNT(
  SELECT
    ssn
  FROM hr.tables.empl_info
);
Copy
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.DUPLICATE_COUNT(SELECT ssn FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| 0                                                                   |
+---------------------------------------------------------------------+
语言: 中文