テーブルのマージ

テーブルのマージを使用すると、レコード構造が同一である 2 つの並べ替え済みの Analytics テーブルを結合して、元のテーブルと同じ並び順になっている第 3 の新しいテーブルに出力することができます。 マージはレコードの挿入によって動作します。既存の並べ順に従って、レコードを結合することを意味します。

並べ替えられた従業員テーブルの並べ順を保持する統合テーブルと組み合わせるなど、有用なタスクを実行するために、マージ処理を使用できます。

シナリオ

従業員レコードのセット全体に対して分析を実行したいが、レコードが 2 つの課員テーブルに分散している場合を考えます。

どちらのテーブルもラストネームで並べ替えられているため、レコードを結合後に再度並べ替えるオーバーヘッドが生じないようにしたいとします。

アプローチ

2 つのテーブルにあるレコードを、新しい第 3 のテーブルに結合します。 マージを行うことで、ラストネームでの並べ替えが保持されます。

テーブルには同じレコード構造が必要です

2 つのテーブルを正常にマージするには、両方のテーブルのレコードは、構造がまったく同じであることが必要です。

  • データ要素、およびフィールドの数と順序は同一である必要があります。
  • 対応するフィールドのデータ型は同じである必要があります。
  • 対応するフィールドの開始位置と長さは、同一である必要があります。
  • 日付時刻フィールドについては、日付時刻形式が同じである必要があります。

メモ

マージ]ダイアログ ボックスには、文字フィールドと文字の演算フィールドのみが表示されます。 表示されないフィールドも、2 つのテーブル間で同一のデータ構造である必要があります。

レコード構造の比較

2 つのテーブルをマージする前に、テーブルの対応するフィールドを比較し、同じ構造であることを確認できます。 詳細については、データ構造の比較を参照してください。

フィールド レベルのデータ構造の違いによって、テーブルの正常なマージが妨げられている場合は、対応するフィールドを一致させることができる可能性があります。 詳細については、フィールドの一致を参照してください。

ヒント

場合によっては、Analytics 外でデータを結合する方が簡単あるいは実用的であることもあります。 フィールド間で一貫性がないために、Analytics でデータをマージすることが困難な場合は、データの結合の代替方法を参照してください。

共通のキー フィールドを使用したテーブルのマージ

共通のキー フィールド(従業員番号やベンダー ID、姓など両方のテーブルに存在するデータ要素)を使用してテーブルをマージします。 2 つの元のテーブルのレコードは、元のテーブルで使用される並べ順での配置に基づき、マージされたテーブルに配置されます。

マージするテーブルのキー フィールドには複数の要件が適用されます。

キー フィールドの特性 要件
データ要素 同じである必要があります。 たとえば、両方のキー フィールドが姓フィールドです。
並べ替え順序 同じで、昇順である必要があります。

メモ

マージ操作時に主キー フィールドを並べ替えるには、[主テーブルをあらかじめ並べ替える]オプションを使用することができます。 副キー フィールドが並べ替えられていない場合は、マージを実行する前に、まず別個の並べ替え操作でフィールドの並べ替えを行ってください。

データ型

文字である必要があります。

フィールド型 物理フィールドまたは演算フィールドにできます。
フィールド名 異なることができます。
開始位置 同じである必要があります。
フィールド長

同じである必要があります。

主テーブル、副テーブル、キー フィールド

マージ操作の対象となるテーブルとキー フィールドは、テーブルを開く順序に基づき、およびとして識別されます。

  • 主テーブル – 最初に開いたテーブル

  • 主キー フィールド – 主テーブルから選択したキー フィールド

  • 副テーブル – 2 番目に開いたテーブル

    副テーブルを開くことは、それを主テーブルに関連付け、処理のために利用できるようにすることを意味します。 副テーブルはビュー タブで開かれません。

  • 副キー フィールド – 副テーブルから選択したキー フィールド

主および副となるテーブルやキー フィールドは自由に選択できます ただし、このマージが成功するのは、その対象テーブルとキー フィールドがマージの必要条件を満たしている場合のみです。

詳細については、キー フィールドについてを参照してください。

複数のキー フィールドのテーブルのマージ

複数の主キー フィールドおよび副キー フィールド(複数の共通キー)を使用して 2 つのテーブルをマージする場合は、さらに以下の要件が適用されます。

  • キー フィールドはすべて昇順に並んでいる必要があります。これは各テーブルで、入れ子になっている並べ替えパターンがあることを意味します。
  • 各テーブルでキー フィールドを選択する順序は、各テーブルにおける入れ子の並べ替えパターンの順序と同じでなければなりません。
  • 両方のテーブルで、入れ子の並べ替えパターンが同じである必要があります。

マージに関する追加情報

以下のテーブルではマージに関する追加情報を提供します。

機能分野 詳細
出力テーブルのサイズ 結果として生じる結合テーブル内のレコード数は、マージされる 2 つのテーブル内のレコード数の合計になります。
レコードとフィールド マージできるのはレコード全体のみです。
キー フィールドのデータ型

文字フィールドまたは文字の演算フィールドのみ、キー フィールドに指定できます。

ヒント

Analytics 関数を使用して、数値または日付時刻フィールドを文字フィールドに変換できます。 詳細については、フィールドの一致を参照してください。

同じキー フィールド値 主テーブルと副テーブルのレコードのキー フィールド値が同一である場合は、主テーブルのレコードが副テーブルのレコードより先に並べ替えられます。
対応するフィールドの名前 主テーブルと副テーブルの対応するフィールドは、同じ名前である必要はありません。 結果として生じる結合テーブルでは、主テーブルのフィールド名が優先されます。
対応する演算フィールド 対応する演算フィールドがある場合、主テーブルの演算フィールドの式は副テーブルの式よりも優先されます。
パフォーマンスのヒント サイズが異なる 2 つのテーブルをマージするときに、大きい方のテーブルを主テーブルとして使用すると、処理が少なくて済みます。
並べ替えの代わりのインデックス

主キー フィールドと副キー フィールドは、並べ替える代わりに昇順でインデックスを付けることができます。 インデックスは並べ替えよりもパフォーマンス上の利点を提供します。

副テーブルへのインデックスの適用は、コマンド ラインまたはスクリプト内のみで行うことができます。

範囲パラメーター 処理されるレコードを絞り込むための If、While、First、Next パラメーターは、主テーブルにのみ適用されます。
テーブルの位置 マージするためには、その対象となるテーブルは同じ Analytics プロジェクト内に存在している必要があります。 サーバーにあるテーブルであれば同じサーバー上にあり、同じサーバー プロファイルを使用してアクセスする必要があります。 ローカルのテーブルとサーバーのテーブルをマージすることはできません。