カテゴリ:

システム関数 (システム情報)

SYSTEM$CLUSTERING_RATIO --- 非推奨

テーブル内の1つ以上の列に基づいて、テーブルのクラスタリング率を計算します。比率は、 0 から 100 までの数値です。比率が高いほど、テーブルはより適切にクラスター化されます。

テーブルのクラスタリング率は、テーブル内の任意の列、またはテーブルのクラスタリングキーとして明示的に定義された列を使用して計算できます。 CREATE TABLE または ALTER TABLE のいずれかを使用して、テーブルのクラスタリングキーを定義できます。

クラスタリング率とクラスタリングキーの詳細については、 Snowflakeテーブル構造について をご参照ください。

構文

SYSTEM$CLUSTERING_RATIO( '<table_name>' , '( <col1> [ , <col2> ... ] )' [ , '<predicate>' ] )
Copy

引数

table_name

クラスタリング率を計算するテーブルです。

col1 [ , col2 ... ]

クラスタリング率の計算に使用されるテーブルの列です。

  • クラスタリングキーのないテーブルの場合、この引数は必須です。この引数を省略すると、エラーが返されます。

  • またはクラスタリングキーを持つテーブルの場合、この引数はオプションです。引数が省略された場合、Snowflakeは定義されたクラスタリングキーを使用して比率を計算します。

注釈

この引数を使用して、テーブルに定義されたクラスタリングキーに関係なく、テーブル内の列の比率を計算できます。

predicate

クラスタリング率を計算する列の値の範囲をフィルタリングする句です。 predicate は、句の先頭で WHERE キーワードを使用しません。

使用上の注意

  • すべての引数は文字列です(一重引用符で囲む必要あり)。

  • predicate に文字列が含まれる場合は、文字列を一重引用符で囲む必要があります。その後、一重引用符を使用してエスケープする必要があります。例:

    SYSTEM$CLUSTERING_RATIO( ... , 'col1 = 100 and col2 = ''A''' )

テーブルの2つの列を使用して、テーブルのクラスタリング率を計算します。

SELECT SYSTEM$CLUSTERING_RATIO('t2', '(col1, col3)');

+-------------------------------+
| SYSTEM$CLUSTERING_RATIO('T2') |
|-------------------------------|
|                          77.1 |
+-------------------------------+
Copy

テーブルの2つの列と1つの列の述語を使用して、テーブルのクラスタリング率を計算します。

SELECT SYSTEM$CLUSTERING_RATIO('t2', '(col1, col2)', 'col1 = ''A''');

+-------------------------------+
| SYSTEM$CLUSTERING_RATIO('T2') |
|-------------------------------|
|                          87.7 |
+-------------------------------+
Copy

テーブルに定義されたクラスタリングキーを使用して、テーブルのクラスタリング率を計算します。

SELECT SYSTEM$CLUSTERING_RATIO('t1');

+-------------------------------+
| SYSTEM$CLUSTERING_RATIO('T1') |
|-------------------------------|
|                         100.0 |
+-------------------------------+
Copy