【AlteryxTips】結合In-DBツールで結合ツールと同じアウトプットを得る方法

結合In-DBツールで結合ツールと同じアウトプットを得る方法をご紹介します

 

「結合In-DB」ツールは内部的にはSQLで動作するためアウトプットもSQLの結果と同等となっており、「結合」ツールとは出力結果が異なり、SQLに慣れていないユーザーとしては非常に違和感があると思います。今回は、結合ツールと同じように使えるような手法について説明します。

 

結合ツールのおさらい

Alteryxの結合ツールは、左入力(L入力)、右入力(R入力)から来たデータについて、キーフィールドに基づいてデータを紐付けるツールです(本記事はIn-DBツールのお話が主題となりますので、結合In-DBではできない「レコードポジションで結合」するオプションは忘れてください)。アウトプットは3つあり、L出力、J出力、R出力となっています。それぞれ以下の通りとなります。

 

出力 説明
L出力 キーフィールドが紐付かなかったL入力から来たデータ(下図の青色)
J出力 キーフィールドが紐付いたデータ(下図のオレンジ色)
R出力 キーフィールドが紐付かなかったR入力から来たデータ(下図の緑色)

つまり、ベン図にすると、以下のようになります。

結合ツールベン図

しかし、これはExcelのVLOOKUPや、SQLの結合とは異なります。例えば、SQLでの結合は、左結合、右結合、内部結合、外部結合という言い方となり、実はSQLの結合(内部結合)に該当するのはJ出力です。左結合や右結合、外部結合に該当するものはAlteryxの結合ツールにはありません。

 

SQLと結合ツールのアウトプットの違い

 

もう少し違いを見ていきましょう。SQLの結合は以下のようになります。

 

出力 説明
内部結合 キーフィールドが紐付いたデータ
外部結合 すべてのデータ(キーフィールドで紐付いたデータ+キーフィールドが紐付かなかったL入力から来たデータ+キーフィールドが紐付かなかったR入力から来たデータ)
左結合 キーフィールドで紐付いたデータ+キーフィールドが紐付かなかったL入力から来たデータ
右結合 キーフィールドで紐付いたデータ+キーフィールドが紐付かなかったR入力から来たデータ

 

つまり、ベン図にすると、以下のようになります。

内部結合。

内部結合

外部結合(完全な外部結合)。

完全外部結合

左結合(左外部結合)。

 

左外部結合

右結合(右外部結合)。

右外部結合

つまりこれを得るには以下のようにユニオンツールと組み合わせます。

左結合。

左結合(LeftJoin)

右結合。

右結合(RightJoin)

外部結合。

外部結合(OuterJoin)

 

結合In-DBツールについて

結合In-DBツールでは、基本的にSQLと同じ出力を得ることができます。

結合In-DB

そのため、以下のようにSQLと同様、出力はいずれか1つを選択する必要があります。

結合In-DB設定

しかしよくよく考えると、Alteryxの結合ツールとは異なり、出力が1つしかありませんし、そもそも結合ツールのL出力とR出力と同等の出力は得ることができません。

 

結合In-DBで結合ツールのアウトプットを得る方法

Alteryxの結合ツールに慣れてしまうと、通常のSQLとは異なる考え方が頭に浮かぶようになってきます。ここで、In-DBを使わざるをえない状況になると、In-DB結合ツールは結合ツールの動きとは異なるため少し発想の転換が必要です。

Alteyrxの結合ツールのL出力、R出力を得る方法の答えとしては、結合In-DBは完全な外部結合で出力し、その後フィルターIn-DBを用い、キー項目でNullだけ抜き出します。このとき、L入力、R入力のうち例えばR側のキー項目がNullであればL側にしかないデータを抽出可能です。つまり、以下のようになります。

 

出力 説明
L出力 R出力のキーフィールドがNullである
R出力 L出力のキーフィールドがNullである

 

それではサンプルで見てみましょう。

結合In-DBツールでL出力を得る設定

L出力を得る設定

 

結合In-DBツールでR出力を得る設定

R側を出力する設定

 

サンプルワークフローダウンロード

サンプルワークフローは、In-DBツールを使用しているため、データベース接続部分だけ書き換える必要があります。

L出力を得る_ブログ用Sample

 

 

 

※Alteryx Version 2021.2.1時点での情報です

Alteryxの導入はぜひKCMEで!

セルフサービスデータ分析ツール「Alteryx」は4週間無償トライアルが可能です。

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Alteryxを用いた環境構築、開発、ヘルプデスク対応、ハンズオン、トレーニング、ワークフロー作成なども承りますので、お気軽にご相談ください。

おすすめの記事