重複レコードの処理
選んだ列の値がまったく同じ行を 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 氏名
設定 — この機能のあとに行の並べ替えをつなぐ
出力 — 重複がなく、並んだ一覧