DUPLICATES コマンド

重複値または重複レコードが Analytics テーブル内に存在するかどうかを検出します。

構文

DUPLICATES <ON> {キー フィールド <D> <...n>|ALL} <OTHER フィールド <...n>|OTHER ALL> <UNFORMATTED> <ADDGROUP> <PRESORT> <IF テスト> <WHILE テスト> <FIRST 範囲|NEXT 範囲> <APPEND> <OPEN> <TO {SCREEN|テーブル名|ファイル名|PRINT}> <LOCAL> <HEADER ヘッダー テキスト> <FOOTER フッターテキスト> <ISOLOCALE ロケールコード>

パラメーター

名前 説明
ON キーフィールド D <...n> | ALL

重複がないかどうかをテストする 1 つまたは複数のキーフィールド、あるいは式。

  • キー フィールドには、指定された 1 つまたは複数のフィールドが使用されます。

    複数のフィールドでテストする場合、レコードが重複として検出されるには、指定したすべてのフィールドの値が同一である必要があります。

    キー フィールドを降順に並べ替える D を含めます。 デフォルトのソート順は昇順です。

  • ALLでは、テーブル内のすべてのフィールドが使用されます。

    テーブル内のすべてのフィールドをテストする場合、レコードが重複として検出されるには、レコードが完全に同一である必要があります。

    ALL では昇順でしか並べ替えることができません。

    メモ

    レコードの未定義部分はテストされません。

OTHER フィールド <...n> | OTHER ALL

省略可能

出力に含める 1 つ以上の追加フィールド。

  • フィールド <...n> 指定した 1 つまたは複数のフィールドが含まれます。
  • ALL キー フィールドとして指定しなかった、テーブル内のすべてのフィールドが含まれます。

UNFORMATTED

省略可能

結果をファイルに出力する場合、ページ見出しや改ページは除去されます。

ADDGROUP

省略可能

出力テーブルにグループ番号フィールド(GROUP_NUM)を含めます。

グループ番号]フィールドは、一意の各重複値グループに対し、1 ずつ増える連番を割り当てたものです。

ヒント

重複値グループを番号で参照するこの機能は、出力テーブル内のデータを分析する場合に使用できます。

PRESORT

省略可能

コマンドを実行する前にキー フィールドでテーブルを並べ替えます。

メモ

GROUP コマンドの内部では PRESORT を使用することができません。

IF テスト

省略可能

各レコードを処理するために真である必要がある条件式。 コマンドは、その条件を満たすレコードに対してのみ実行されます。

メモ

IF パラメーターは、任意の範囲パラメーター(WHILE、FIRST、NEXT)が適用された後に、テーブルに残るレコードに対してのみ評価されます。

WHILE テスト

省略可能

各レコードを処理するために真である必要がある条件式。 条件が false と評価するか、テーブルの最後に達したら、コマンドは実行を中止します。

メモ

WHILE を FIRST または NEXT とともに使用する場合は、1 つの制限に達するとすぐに、レコードの処理が停止します。

FIRST 範囲 | NEXT 範囲

省略可能

処理するレコード数:

  • FIRST 指定されたレコード数に達するまで、最初のレコードから処理を開始します
  • NEXT 指定されたレコード数に達するまで、現在選択されているレコードから処理を開始します

範囲は処理するレコード数を指定します。

FIRST と NEXT を省略すると、すべてのレコードがデフォルトで処理されます。

APPEND

省略可能

コマンドの出力を既存ファイルに上書きしないで、そのファイルの末尾に追加します。

メモ

コマンドの出力と既存のファイルの構造が同一であるようにする必要があります。

  • 同じフィールド
  • 同じフィールド順序
  • 一致するフィールドが同じ長さ
  • 一致するフィールドが同じデータ型

出力は、既存ファイルとの間でファイル構造が違っている場合でも、Analytics によって既存ファイルに追加されます。 出力と既存のファイルの構造が一致しない場合は、データが混在、不足、不正確になります。

OPEN

省略可能

コマンドを実行した後、コマンドによって作成されたテーブルを開きます。 コマンドが出力テーブルを作成する場合にのみ有効です。

TO SCREEN | テーブル名 | ファイル名 | PRINT

省略可能

コマンドの結果を送信する場所:

  • SCREEN - Analytics の表示領域に結果を表示します

    ヒント

    表示領域内で、リンク付きの任意の結果値をクリックすると、関連付けられているソース テーブル内の 1 つまたは複数のレコードにドリルダウンすることができます。

  • テーブル名は、結果の保存先となる Analytics テーブルのことです。

    テーブル名には、ファイル拡張子 .FIL を付けた文字列を引用符で囲んで指定する必要があります。 例:TO "Output.FIL"

    デフォルトでは、テーブル データ ファイル(.fil)は、Analytics プロジェクトが入っているフォルダーに保存されます。

    既存の異なるフォルダーにデータ ファイルを保存するには、絶対または相対ファイル パスを指定します。

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    メモ

    テーブル名は 64 文字の英数字(.FIL 拡張子を含まない)に制限されています。 名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。 名前の先頭を数字にすることはできません。

  • ファイル名は結果の保存先となるファイルです。

    ファイル名には、適切なファイル拡張子を付けた文字列を引用符で囲んで指定します。 例:TO "Output.TXT"

    デフォルトでは、テーブル ファイルは、Analytics プロジェクトが入っているフォルダーに保存されます。

    既存の異なるフォルダーにファイルを保存するには、絶対または相対ファイル パスを指定します。

    • TO "C:\Output.TXT"
    • TO "Results\Output.TXT"
  • 印刷 – 通常使うプリンターに結果を送信します

LOCAL

省略可能

Analytics プロジェクトと同じ場所に出力ファイルを保存します。

メモ

Analytics テーブルである出力ファイルを含むサーバー テーブルに対してコマンドを実行するときにのみ適用されます。

LOCAL パラメーターは TO パラメーターの直後に置く必要があります。

HEADER ヘッダーテキスト

省略可能

レポートの各ページの最上部に挿入されるテキスト。

ヘッダーテキストは引用符で囲んだ文字列として指定する必要があります。 この値は、Analytics のシステム変数である HEADER の値よりも優先されます。

FOOTER フッターテキスト

省略可能

レポートの各ページの最下部に挿入されるテキスト。

フッターテキストは引用符で囲んだ文字列として指定する必要があります。 この値は、Analytics のシステム変数である FOOTER の値よりも優先されます。

ISOLOCALE ロケールコード

省略可能

メモ

Analytics の Unicode 版にのみ適用されます。

システム ロケールは「言語-」の形式で入力します。 たとえば、カナダ フランス語はコード「fr_ca」を入力します。

次のコードを使用します。

  • 言語 ISO 639 標準言語コード
  • ISO 3166 標準国コード

    国コードを指定しない場合は、言語のデフォルト国が使用されます。

ISOLOCALE を使用しない場合は、デフォルト システム ロケールが使用されます。

Analytics の出力変数

名前 含む
GAPDUPn

コマンドによって確認されたギャップ、重複、またはあいまい重複グループの合計数。

1 つのフィールドの重複値のテスト

次の例:

  • Invoice_Number フィールドの重複値のテスト
  • 重複する請求書番号を含むレコードを新しい Analytics テーブルに出力する
DUPLICATES ON Invoice_Number OTHER Vendor_Number Invoice_Date Invoice_Amount PRESORT TO "Duplicate_Invoices.FIL"

2 つ以上のフィールドの組み合わせの重複値のテスト

次の例:

  • Invoice_Number および Vendor_Number フィールドの値の重複した組み合わせのテスト
  • 同じ請求書番号と同じ業者番号を含むレコードを新しい Analytics テーブルに出力する

このテストと前のテストの間の違いは、2 つの異なる業者番号からの同じ請求書番号が誤検出として報告されないことです。

DUPLICATES ON Invoice_Number Vendor_Number OTHER Invoice_Date Invoice_Amount PRESORT TO "Duplicate_Invoices.FIL"

重複するレコードを検索する

下記の例では以下が行われます。

  • Inventory テーブルのすべてのフィールドに重複値がないかどうかをテストする
  • 完全に同じレコードを新しい Analytics テーブルに出力する
DUPLICATES ON ProdNum ProdClass Location ProdDesc ProdStatus UnitCost CostDate SalePrice PriceDate PRESORT TO "Duplicate_Inventory_Items.FIL"

この構文は、ALL を使用すれば次のように簡素化できます。

DUPLICATES ON ALL PRESORT TO "Duplicate_Inventory_Items.FIL"

重複値の出力テーブルをグループ番号でフィルター処理する

複数のキー フィールドを組み合わせて使用することで、買掛金テーブルに重複レコードがないかどうかをテストすることができます。

  • Vendor_No(ベンダー番号)
  • Invoice_No(請求書番号)
  • Invoice_Date(請求書番号)
  • Invoice_Amount(請求金額)

結果の重複値出力テーブルをフィルター処理することで、いくつかの重複値グループのみを追加処理することができます。

キー フィールドの組み合わせを使ってフィルターを作成することは、次のように骨が折れます。 例:

SET FILTER TO ((Vendor_No = "11475") AND (Invoice_No = "8752512") AND (Invoice_Date = `20191021`) AND (Invoice_Amount = 7125.80)) OR ((Vendor_No = "12130") AND (Invoice_No = "589134") AND (Invoice_Date = `20191117`) AND (Invoice_Amount = 10531.71)) OR ((Vendor_No = "13440") AND (Invoice_No = "5518912") AND (Invoice_Date = `20191015`) AND (Invoice_Amount = 11068.20))

このようにする代わりに、次のようにグループ番号を基準にしたフィルターを作成することでも、同じ結果が得られます。

SET FILTER TO MATCH(GROUP_NUM, 3 , 8, 11)

備考

メモ

このコマンドの動作の詳細については、Analytics のヘルプを参照してください。

並べ替えと重複

一般に、DUPLICATES コマンドは、並べ替えた 1 つまたは複数のキー フィールドに対してのみ実行する必要があります。 キー フィールド内の重複値が、それら同士がすぐ隣に並んでいる場合にのみ検出できるためです。

キー フィールドを並べ替えずに DUPLICATES コマンドを実行しても、隣り合っていない重複値は重複値として報告されません。 同じ重複値の塊が 2 つ以上ある場合でも、それらの塊は別々のグループの重複値として報告されます。

分析の目的によっては、キー フィールドを並べ替えずに DUPLICATES コマンドを実行することにも意味がある場合があります。 たとえば、ソース テーブル内ですぐ隣に並んでいる重複値のみを検出して、隣り合っていない重複値は無視したい場合が、その例です。