コンテンツにスキップ

重複レコードの処理

選んだ列の値がまったく同じ行を 1 行にまとめます。SQL の SELECT DISTINCT を組み立てる機能です。

分析プロジェクトとの違い

見るところSQLビルダー分析プロジェクト
処理タイプ重複を取り除くだけ重複行を削除 / 重複行ごとに行数カウント / 重複した行を抽出 の 3 つ
判定する列の選び方列を選ぶ。選ばなければ全列「重複チェックする列を限定する」を on にして選ぶ
一括選択できる(前方一致・後方一致・部分一致・除外)ない

「重複している行だけを見たい」「何件重複しているか知りたい」はこの機能ではできません。 データ集計でキーごとのカウントを出し、条件で行を絞り込みで 2 件以上に絞ってください。

入出力

ポート内容
入力データデータ
出力データデータ

設定項目

重複削除対象列を設定
見出しで、その下の 列を選択 で重複を判定する列を選びます。複数選べます。ここで選んだ列だけが出力に残ります。1 つも選ばないと、すべての列を使って判定します。
列選択オプション
対象列をまとめて選ぶための補助です。特定の文字列から始まる列・で終わる列・を含む列を一括で選べ、選択した列を除外するで裏返せます。

選ばなかった列は落ちる

出力に残るのは、重複判定に選んだ列だけです。 顧客ID だけを選ぶと、出力は 顧客ID 1 列になります。

ほかの列も残したい場合は、その列も対象列に足してください。ただし足した列の値が行ごとに違うと、重複とみなされる行が減ります。

生成される SQL

PostgreSQL につないで、顧客ID と 店舗 を対象にした場合です。

SELECT DISTINCT "顧客ID", "店舗"
FROM "orders"

対象列を 1 つも選ばなかった場合は SELECT DISTINCT * になります。

エラーと対処

どのエラーも、設定を直してノードを実行し直せば消えます。

上流にない列が選ばれている

前のノードで列が消えたあとに実行すると出ます。

存在しない列が選択されています

直し方 — 対象列を選び直してください。

入力がつながっていない

前のノードがつながっていないと出ます。

カラムが選択されていません。条件を確認してください

直し方 — 入力にノードをつないでください。

よく使う例

1. 顧客の一覧を作る

お題 — 取引履歴から、取引のあった顧客だけを並べたい

入力 — 顧客ID 受注日 売上

設定 — 対象列に 顧客ID

出力 — 顧客ID 1 列。同じ顧客は 1 行

2. 店舗と商品の組み合わせを出す

お題 — どの店でどの商品が売れたかの組を知りたい

入力 — 店舗 商品コード 売上

設定 — 対象列に 店舗 と 商品コード

出力 — 組ごとに 1 行

3. 行がまるごと同じものだけ落とす

お題 — 取り込みの失敗で同じ行が二重に入っている

入力 — 顧客ID 受注日 売上(同じ行が二重に入っている)

設定 — 対象列を 1 つも選ばない

出力 — 全列が同じ行が 1 行にまとまります

4. 一括選択で対象列を決める

お題 — キー_ で始まる列だけで判定したい

入力 — キー_店舗 キー_商品 売上

設定 — 列選択オプションの「特定の文字列から始まる列を一括選択」に キー_ を入れる

出力 — その列だけで判定され、その列だけが残ります

5. 重複を取ってから並べ替える

お題 — 一覧を名前順にしたい

入力 — 顧客ID 氏名

設定 — この機能のあとに行の並べ替えをつなぐ

出力 — 重複がなく、並んだ一覧

関連