类别:

数据指标函数

ACCEPTED_VALUES(系统数据指标函数)

返回列值 匹配布尔表达式的记录数。

语法

SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )
Copy

实参

column

指定包含与 lambda-expression 中的布尔表达式进行比较的值的列。

lambda-expression

指定由以下语法组成的 lambda 表达式:column -> expression

该函数返回 column 值与布尔表达式不匹配的记录数。此表达式可以使用以下运算和函数:

lambda 表达式中的 column 始终与 column 实参匹配。

允许的数据类型

columnlambda-expression 实参中指定的列可以包含以下任何数据类型:

  • DATE

  • FLOAT

  • NUMBER

  • TIMESTAMP_LTZ

  • TIMESTAMP_NTZ

  • TIMESTAMP_TZ

  • VARCHAR

返回

该函数会返回 NUMBER 值。

访问控制要求

关联和运行系统 DMF 需要系统 DMF 的 USAGE 权限。您可以授予 SNOWFLAKE.DATA_METRIC_USER 数据库角色,以便为用户提供所有系统 DMFs 的 USAGE 权限。有关更多信息,请参阅 授予系统 DMFs 的 USAGE 权限

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

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

使用说明

  • 您不能直接调用此函数。要了解如何将该函数与表或视图关联以使其定期运行,请参阅 关联 DMF 以自动执行数据质量检查

    您可以使用 SYSTEM$DATA_METRIC_SCAN 函数来对表运行 ACCEPTED_VALUES 函数,而无需将其关联。

  • 您不能多次将此函数与同一列关联。

  • 重命名 ACCEPTED_VALUES 函数中指定的列会中断该函数与该列的表或视图之间的关联。如果重命名该列,则必须将该函数与表或视图重新关联。

示例

将该函数与表 t1 关联,这样它就会返回列 age 等于五的记录数。

ALTER TABLE t1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);
Copy

将该函数与视图 order_details 关联以使其返回列 order_status 的值 在字符串 PendingDispatchedDelivered 列表中的记录数。

ALTER VIEW order_details
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
    order_status,
    order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));
Copy
语言: 中文