16.20 - ON句 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-162K-JPN
Language
日本語 (日本)

最大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つのインスタンスを保持し、それを別の入力の各行を処理するために使用します。
マシンの学習では、特定のデータ集合の結果を予測するデータベースにモデルを格納し、格納されたモデルを関数へのディメンション入力として使用できます。
次の制限が適用されます。
  • 同じON句でLOCAL ORDER BY句とDIMENSION句を使用することはできません。
  • テーブル演算子の入力としてON句が1つだけある場合、その中でDIMENSIONを使用することはできません。DIMENSIONを使用するには、2番目のON句に少なくとも1つのPARTITION BY句またはHASH BY句が必要です。
  • 複数のON句を使用し、その1つでLOCAL ORDER BYのみを指定する場合、他のすべてのON句で指定できるのはDIMENSIONのみです。
  • SCRIPTテーブル演算子を使用する場合は、ON句でDIMENSIONを使用できません。

    SCRIPTテーブル演算子については、<Teradata Vantage™ SQL演算子およびユーザー定義関数、B035-1210>を参照してください。

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が指定されると、最初に行が正規化され、結果は正規化された結果に対して順序付けされます。