- カテゴリ:
ACCEPTED_VALUES (システムデータメトリック関数)¶
列の値がブール式と一致*しない*記録の数を返します。
構文¶
SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )
引数¶
columnlambda-expressionのブール式と比較される値を含む列を指定します。lambda-expression次の構文で構成されるLambda式を指定します。
column -> expressionこの関数は、
columnの値がブール式と一致しない記録の数を返します。この式は、次の操作と関数を使用できます。ラムダ式の
columnは常にcolumn引数に一致します。
許可されるデータ型¶
column で指定された列および lambda-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 列の値が5に*等しくない*記録の数を返します。
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);
関数をビュー order_details に関連付けることで、order_status 列の値が Pending、Dispatched、および Delivered 文字列のリストに*ない*記録の数を返します。
ALTER VIEW order_details
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
order_status,
order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));