最大16のON句を使用できます。保護モードと非保護モードのテーブル演算子でサポートされているすべての言語で複数のON句を使用できます。
複数のON句を使用する場合、ON句の順序は、使用するテーブル演算子のストリーム番号の順序に一致させる必要があります。
cogroupは、複数のON句を含むテーブル演算子に使用します。cogroupの詳細については、<Teradata Vantage™ SQL演算子およびユーザー定義関数、B035-1210>を参照してください。
複数のON句、またはPARTITION BYあるいはHASH BYを使用するON句が含まれるテーブル演算子でスカラー サブクエリーを使用することはできません。
関数マッピングとON句を参照してください。
- table_name
- view_name
- テーブル演算子への入力となるテーブルまたはビュー式。
- (query_expression)
- テーブル演算子への入力となる問合わせ式。
- AS correlation_name
- テーブルの別名。
- HASH_BY column
- column_position
- column_expression
- テーブル関数またはテーブル演算子に入力する列をグローバルに順序をハッシュする列名のオプションのセット。
- 複数のON句、またはPARTITION BYあるいはHASH BYを使用するON句が含まれるテーブル演算子でスカラー サブクエリーを使用することはできません。
- 複数のHASH BY句を含む複数の入力テーブル演算子を使用する場合は、次の制限が適用されます。
- すべてに同じ数のパーティション属性が必要です。
- 対応する属性は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。
- HASH BY句とともにLOCAL ORDER BY句を指定する場合は、次の制限が適用されます。
- すべての句に同じ数のLOCAL ORDER BY列が必要です。
- 列のデータ型は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。
- PARTITION BY column_name
- column_position
- column_expression
- テーブル演算子への入力として指定されたテーブルをパーティション化します。
- 列は名前または場所で指定するか、または列に解決される式を使用します。
- 複数のON句、またはPARTITION BYあるいはHASH BYを使用するON句が含まれるテーブル演算子でスカラー サブクエリーを使用することはできません。
- 行レベル セキュリティ制約列をパーティション列として指定することはできません。
- 複数のPARTITION BY句がある場合は、次の制限が適用されます。
- すべてに同じ数のパーティション属性が必要です。
- 対応する属性は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。
- PARTITION BY句とともにORDER BY句を指定する場合は、次の制限が適用されます。
- すべての句に同じ数のORDER BY列が必要です。
- 列のデータ型は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。
パーティション キーは、パフォーマンスにとって重要です。パーティション キーが同じAMPにハッシュされると、一部のAMPが他のAMPよりオーバーロードになることがあります。パーティション キーがVARCHARの場合、VARCHARは他のデータ型より比較に時間がかかることがあるので、パフォーマンスが影響を受ける場合もあります。
- PARTITION BY ANY
- パーティション属性またはORDER BY属性なしでテーブルを指定します。
- PARTITION BY ANYは、AMPにおける行の既存の配置を維持します。PARTITION BY ANY句の後のORDER BY句は、そのパーティションのすべての行がORDER BY句によって並べ替えられることを意味し、機能的にはHASH BY句を使用せずにLOCAL ORDER BY句を使用する場合と同じです。
- 次の制限が適用されます。
- 同じON句にPARTITION BY ANY句とLOCAL ORDER BY句を指定することはできません。
- テーブル演算子で複数のON句を指定する場合は、PARTITION BY ANY句を1つのみ指定できます。他のすべての句はDIMENSIONにする必要があります。
- DIMENSION
- 関数が動作するすべてのパーティションにディメンション テーブルの重複コピーを作成することを指定します。
- ON句ごとにゼロ個以上のDIMENSION句を指定できます。
- DIMENSION入力は、入力テーブルがファクトの小さな検索テーブルであるか、またはマシンの学習用に使用されるなどのトレーニング モデルである場合に役立ちます。DIMENSIONを使用する検索テーブルでは、行はすべてのAMPに複製されます。各AMPがメモリに検索テーブルの1つのインスタンスを保持し、それを別の入力の各行を処理するために使用します。
- マシンの学習では、特定のデータ集合の結果を予測するデータベースにモデルを格納し、格納されたモデルを関数へのディメンション入力として使用できます。
- 次の制限が適用されます。
- LOCAL ORDER BY column_name
- column_position
- column_expression
- テーブル関数への入力に備えて、修飾された行が各AMPに対して順序付けされることを指定します。
- 同じON句にPARTITION BY ANY句とLOCAL ORDER BY句を指定することはできません。
- 同じON句にDIMENSION句とLOCAL ORDER BY句を指定することはできません。
- 複数のON句を使用し、その1つでLOCAL ORDER BYのみを指定する場合、他のすべてのON句で指定できるのはDIMENSIONのみです。
- 複数のON句を使用する場合、同じON句でDIMENSION句とともにLOCAL ORDER BY句を使用することはできません。
- LOCAL ORDER BY句とともに複数のHASH BY句を指定する場合は、次の制限が適用されます。
- すべての句に同じ数のLOCAL ORDER BY列が必要です。
- 列のデータ型は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。
- ORDER BY
- 結果セットのソート方法を定義します。この句を使用していない場合、結果行はソートされずに返されます。
- ORDER BY句をON句の唯一のオプションとして指定することはできません。ORDER BY句は、PARTITION BY句、PARTITION BY ANY句、HASH BY句、またはDIMENSION句と組み合わせる必要があります。
- PARTITION BY句とともにORDER BY句を指定する場合は、次の制限が適用されます。
- すべての句に同じ数のORDER BY列が必要です。
- 列のデータ型は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。
- 問合わせでNORMALIZEおよびORDER BYが指定されると、最初に行が正規化され、結果は正規化された結果に対して順序付けされます。