# 結合条件を持つSQLビジネスルールでテーブル分析を作成

利用対象...

* Big Data Platform
* Cloud API Services Platform
* Cloud Big Data Platform
* Cloud Data Fabric
* Cloud Data Management Platform
* Data Fabric
* Data Management Platform
* Data Services Platform
* MDM Platform
* Qlik Cloud Enterprise Edition
* Qlik Talend Cloud Enterprise Edition
* Qlik Talend Cloud Premium Edition
* Real-Time Big Data Platform

## このタスクについて

場合によっては、データベースにある2つのテーブルのレコードを結び付けるJOIN句を持つSQLビジネスルールを使って、データベーステーブルやビューを分析しなければならないことがあります。このJOIN句は2つのカラム間で共通値を比較し、結果データセットを出力します。このセットにあるデータはその後、ビジネスルールに対して分析されます。

分析されたデータとJOIN句そのものに応じて、マッチ数 + 非マッチ数 &gt; 行数数、マッチ数 + 非マッチ数 &lt; 行数数、マッチ数 + 非マッチ数 = 行数数など、結合結果は多岐にわたります。

次の例で、結合結果にあるデータセットが行数(一致数 + 不一致数 &gt; 行数)よりも大きいケース、つまり処理されたデータに重複値が存在する場合を詳細に説明します。

始める前に:

* Talend StudioのProfilingパースペクティブで、SQLビジネスルールが少なくとも1つ作成されていること。
* Talend StudioのProfilingパースペクティブでデータベース接続が少なくとも1つ設定されていること。

この例では、[SQLビジネスルールを作成](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/creating-sql-business-rule)で作成されたSQLビジネスルールを、ageおよびnameカラムを含んでいるPersonテーブルに追加します。このSQLビジネスルールは18歳を超える顧客を定義し、顧客年齢と一致させます。ビジネスルールにはまた、Person (人)テーブルとPerson\_Refという他のテーブル間でname (名前)という共通のカラムを分析し、"name" (名前)値を比較する結合条件も含まれます。

両テーブルの画像は次のとおりです。 ![プロシージャで使用されるテーブルの例。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_join_condition.png)

2つのテーブル間の結合条件の結果は次のようになります。 ![2つのテーブル間における結合条件の結果。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_join_condition_result.png)

この例のように、結果に重複行が出力されることがあります。それによって分析の結果が若干わかりにくくなることがあります。ここでは、ビジネスルールにマッチするテーブルの行の分析ではなく、ビジネスルールによって与えられた結果セットでの分析を実行します。

## 手順

1. テーブル分析を定義し、分析するテーブルを選択します。

   選択されたテーブルが[Analyzed Tables] (分析済みテーブル)ビューにリスト表示されます。 ![\[分析結果\]タブにある\[分析済みテーブル\]セクションの概要。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Table_analysis4.png)
2. 選択したテーブルにビジネスルールと結合条件を追加する場合は、テーブル名の横にある![\[Add rule\] (ルールを追加)](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/add_dqrule.svg) をクリックします。

   このビジネスルールには、異なる2つのテーブル間で共通のカラムを分析し、"name" (名前)値を比較する結合条件が含まれます。
3. 分析を保存し、F6を押して実行します。

   情報メッセージが開き、操作が進行中であることが確認できます。また、分析エディターが[Analysis Results] (分析結果)ビューに切り替わります。

   ![ビジネスルールに従ったマッチング値と非マッチング値を示すグラフ。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_analysis_detailresults.png)

   選択されたテーブルの年齢レコードはすべて、定義されているSQLビジネスルールに対して評価されます。分析結果は2つの棒グラフで表されます。最初の棒グラフは行数インジケーターで、分析済みテーブルにある行数を表示します。2番目の棒グラフはマッチおよび非マッチインジケーターで、「分析された結果セット」からの年齢レコードのうち、基準にマッチしないもの(つまり18歳未満のレコード)が示されます。

   情報メモ注: 結合条件がSQLビジネスルールで使用される場合、結合行数(マッチ数 + 非マッチ数)が、分析された行数(行数)と異なることがあります。
4. 最初のテーブルで[Row Count] (行数)行を右クリックし、[View rows] (行を表示)を選択します。

   Talend StudioでSQLエディターが開き、分析された行のリストが表示されます。

   ![SQLエディターにおける分析された行のリスト。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_analysis_view_rows.png)
5. 2番目のテーブルにあるビジネスルール結果を右クリックするか、チャート自体にある結果棒グラフを右クリックします。
6. オプションを選択します。
   | オプション | 説明 |
   | --- | --- |
   | [View valid rows] (有効な行を表示) | 選択したテーブルで使用したパターンに対して測定された有効なすべての行のリスト(SQLエディター内)にアクセスします。 |
   | [View invalid rows] (無効な行を表示) | 選択したテーブルで使用したパターンに対して測定された無効なすべての行のリスト(SQLエディター内)にアクセスします。 |
   | [Analyze duplicates] (重複値を分析) | テーブル内に超複値があればそれを分析する既製分析を生成し、行数と重複数を出力します。 |
   | [Generate Job] (ジョブを生成) | 分析済みテーブルの有効な行や無効な行を出力ファイルに書き込むため、抽出、ロード、変換プロセス(ELT)を使用するジョブを作成します。このオプションは、Microsoft SQL Server、MySQL、Oracle、PostgreSQLの接続で使用できます。 |

   次の図は、分析済みテーブルの無効な行のリストです。

   ![SQLエディターにおける無効な行のリスト。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_analysis_detailresults2.png)
7. SQLエディターのツールバーにある保存アイコンをクリックすると、SQLビジネスルールで実行されたクエリーが保存され、[DQ Repository] (DQリポジトリー)ツリービューの[Libraries] (ライブラリー) &gt; [Source Files] (ソースファイル)フォルダーの下にリスト表示されます。
8. 分析結果にある[Business Rule Statistics] (ビジネスルール統計)棒グラフチャートの理解を高めるには、以下のようにします:
   1. 分析エディターで、ビジネスルールを右クリックし、[View executed query] (実行したクエリーを表示)を選択します。

      ![\[分析済みテーブル\]セクションにあるビジネスルールのコンテキストメニュー。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_analysis_view_query.png)

      Talend StudioでSQLエディターが開きます。

      ![SQLエディターの概要。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_analysis_view_query2.png)
   2. エディターの上部にあるクエリーを次のように変更します: SELECT \* FROM `my_person_joins`.`person` Person JOIN `my_person_joins`.`Person_ref` Person\_ref ON (Person.`name`=Person\_ref.`Name`).

      これで、結合条件の結果データセットがエディターにリスト表示されるようになります。
   3. エディターの左上で![\[Execute SQL\] (SQLを実行)](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/process_run.svg)をクリックし、クエリーを実行します。

      クエリー結果である分析された結果セットが、エディターの下半分にリスト表示されます。
   4. 分析エディターに戻り、エディターの下部にある[Analysis Results] (分析結果)タブをクリックし、分析結果の詳細ビューを開きます。

      ![特定のテーブルに関する分析結果の詳細ビュー。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/table_analysis_view_query4.png)

      分析された結果セットに含まれている行が、分析済みテーブルよりも多い(または少ない)場合があります。この例では、2つのテーブルの結合で予測を超える行が生成されたため、マッチレコードと非マッチレコードの数(5 + 2 = 7)が、分析されたレコードの数(6)を上回っています。

      ここでは、5行(71.43%)がビジネスルールとマッチし、2行がマッチしていません。結合によって重複行が生成されるため、この結果は、分析済みテーブルの5行がビジネスルールにマッチしているという意味ではありません。結果セットの7行のうち5行がビジネスルールにマッチしているという意味です。実際、分析済みテーブルの一部の行はビジネスルールに対する分析さえ行われません。これは、結合でこれらの行が除外される時に発生します。このため、分析された結果で結合が行を削除したり追加したりしないよう、ビジネスルールの結合で使用されるカラムで重複値を調べることをお勧めします。 重複値を調べなければ、結果の解釈はさらに複雑になります。

      [Analysis Results] (分析結果)ビューで、一致レコードと不一致レコードの数が分析されたレコードを上回る場合は、選択されたテーブルで重複値を分析する既製分析を生成できます。

### このセクション内

* [ショートカット手順でSQLビジネスルールを持つテーブル分析を作成](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2024-10/creating-table-analysis-with-sql-business-rule-in-shortcut-procedure)
* [重複を分析できるよう結合結果で分析を生成](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2024-10/generating-analysis-on-join-results-to-analyze-duplicates)