テーブルの結合

テーブルの結合

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。


レポート作成システムでは、分析やレポート作成に必要な情報を得るために、複数のテーブルのデータを組み合わせることがよくあります。複数のテーブルからデータを取得するには、「テーブルの結合」と呼ばれる処理でテーブルを組み合わせる必要があります。結合とは、共通の列を使用してテーブル間に関連付けを設定する方法です。

Zoho Analyticsでは、次のいずれかの方法でテーブルを結合してレポートを作成できます。

  • 自動結合
  • クエリーテーブル

テーブルの自動結合

複数のテーブルにまたがるデータを使用してレポートを作成する場合、Zoho Analyticsの自動結合機能を利用できます。テーブルがルックアップ列で関連付けられている場合、この機能によってレポート作成時にテーブルが自動的に結合されます。この機能を使用するには、2つのテーブルがルックアップ列で関連付けられていることを指定する必要があります。2つのテーブル間にルックアップ関係を設定するには、両方のテーブルに共通する列が少なくとも1つ必要です。例を見ながら詳しく説明します。

次の例では、ルックアップ列を設定する方法と、ルックアップ関係に基づいてレポート作成時に自動結合機能でテーブルが結合される仕組みを説明します。

「店舗売上データベース」モデル:

 

上記の店舗売上データベースモデルでは、売上テーブルと営業担当者テーブルに、営業担当者IDという共通の列があります。「売上」テーブルでは、各売上が、その売上を担当した営業担当者の営業担当者IDに関連付けられています。「営業担当者」テーブルでは、各営業担当者が営業担当者ID列に指定された一意のIDで識別されます。同様に、売上テーブルと商品の詳細テーブルには、Product_IDという共通の列があります。「売上」テーブルでは、各売上がProduct_ID列で識別される商品に関連付けられています。商品テーブルでは、各商品がProduct_ID列に指定された一意のIDで識別されます。

これらの関連列を使用して、営業担当者ID列を通じて売上テーブルと営業担当者テーブルの間にルックアップ関係を設定できます。同様に、売上テーブルと商品の詳細テーブルの間には、共通のProduct_ID列に基づいてルックアップ関係を設定できます。ルックアップ列の関係を設定すると、これらのテーブルに基づいてレポートを作成する際に、Zoho Analyticsの自動結合機能によってテーブルのデータが自動的に結合されます。

ルックアップの設定

ルックアップは、既存のテーブル、データのインポート時、またはレポートエディターから設定できます。次のセクションでは、テーブル間にルックアップを設定する方法を説明します。

テーブルからの設定

このセクションでは、テーブルからルックアップ関係を設定する方法を説明します。

前のセクションで説明したテーブルを含む店舗売上ワークスペースがあるとします。共通の営業担当者ID列を使用して、売上テーブルと営業担当者テーブルの間にルックアップを設定します。

  1. 売上テーブルを開き、[デザインを編集]ボタンをクリックします。
  2. 営業担当者IDルックアップ列が交差するセルをクリックします。次の図のように、ワークスペース内のすべてのテーブルとその列がドロップダウンリストに表示されます。営業担当者テーブルの営業担当者IDを選択します。

次の手順でもルックアップ列を作成できます。

  1. 売上テーブルを開きます。
  2. 営業担当者ID列を選択します。
  3. 列見出しを右クリックし、[ルックアップ列に変更]を選択します。
  4. 表示されたルックアップ列に変更ダイアログで、参照する営業担当者ID列を選択します。

これで、ルックアップ列営業担当者IDを通じて、売上テーブルと営業担当者テーブルの間に関係が設定されます。売上テーブルは営業担当者テーブルの列を参照するため、ここでは売上テーブルを子テーブル、営業担当者テーブルを親テーブルと呼びます。

同様に、商品ID列を使用して、売上テーブルと商品の詳細テーブルの間にルックアップ関係を設定できます。この場合、売上テーブルがルックアップ列を持つ子テーブル、商品の詳細テーブルが親テーブルになります。

インポートウィザードからの設定

Zoho Analyticsでは、データのインポート時に類似する列が自動的に識別され、ルックアップの候補として提示されます。次のセクションでは、この仕組みについて説明します。

  • インポートウィザードでインポートするデータを選択すると、次の画面(ステップ2/2:テーブルの作成)に、次のようなポップアップが表示されます。 

  • Zoho Analyticsは、インポートする新しいデータと既存のテーブルを照合し、名前とデータの種類が同じ列を識別して、結合候補として提示します。ルックアップを作成するには、画面下部(ステップ2/2:テーブルの作成)の[テーブルを結合:ルックアップ列が自動識別されました]リンクをクリックします。
  • Zoho Analyticsでルックアップ用の列を自動識別できない場合は、[テーブルを結合]リンクをクリックして、独自にルックアップを作成できます。

 

  • テーブルを結合ダイアログが開き、既存のテーブルから参照できる一致した列の一覧が表示されます。

  • 初期設定では、既存のテーブルの列が親、新しいテーブルの列が子として設定されます。テーブル間をつなぐ円をクリックすると、この関係を入れ替えられます。また、候補の横にある[削除]ボタンをクリックすると、ルックアップ候補を削除できます。

  • ルックアップに使用する列と設定する関係を選択したら、[保存して閉じる]をクリックします。テーブル間にルックアップが作成されます。Zoho Analyticsにおけるリレーショナルデータモデリングの仕組みについては、こちらをご参照ください。

レポートエディターからの設定

別のテーブルのデータを追加する必要がある場合、Zoho Analyticsではレポートエディターからテーブルを結合できます。たとえば、営業担当者別の売上レポートを作成するとします。売上テーブルのデータに営業担当者IDしかない場合でも、営業担当者テーブルから営業担当者名を追加できます。次のセクションでは、この仕組みについて説明します。

  • 左ペインの[テーブルを追加]リンクをクリックします。別のテーブルのデータを結合するためのテーブルを追加ダイアログが開きます。

  • データの結合元となるテーブル(営業担当者)を選択します。Zoho Analyticsによってルックアップ用の類似する列が自動的に識別され、初期設定で選択されます。必要に応じて、これらの列を変更できます。

  • 初期設定では、既存のテーブルの列が親、新しいテーブルの列が子として設定されます。インポートウィザードからの自動結合セクションで説明したように、この関係を入れ替えたり、ルックアップ候補を削除したりできます。また、[+ルックアップを追加]リンクをクリックすると、複数のルックアップを設定できます。

  • ルックアップに使用する列と設定する関係を選択したら、[OK]をクリックします。テーブル間にルックアップが作成され、両方のテーブルの列をレポートに追加できるようになります。Zoho Analyticsにおけるリレーショナルデータモデリングの仕組みについては、こちらをご参照ください。

 自動結合を使用したレポートの作成

ルックアップ列を使用してテーブル間を関連付けると、ルックアップ関係を持つ任意のテーブルを選択してレポートを作成できます。複数のテーブルの列をドラッグ&ドロップすると、Zoho Analyticsによってこれらのテーブルのデータが自動的に結合され、レポートが生成されます。
自動結合機能を使用して営業担当者別の売上グラフを作成する方法は次のとおりです。

  • 売上テーブルを開き、ツールバーの[新しいグラフビュー]を選択します。
  • 自動結合機能によって他のテーブルとのルックアップ関係が検出され、商品テーブルと売上テーブルのすべての列が、レポートデザイナー列の一覧パネルに表示されます。
  • 売上テーブルの営業担当者名列を[X軸]欄に、売上テーブル売上列を[Y軸]欄にドラッグ&ドロップします。
  • [こちらをクリックしてグラフを生成]を選択します。

 

自動結合機能によって、ルックアップ列商品IDを使用して売上テーブルと営業担当者テーブルのデータが自動的に結合され、レポートが作成されます。

関連テーブルの列を使用してレポートをフィルターすることもできます。上記の例では、商品の詳細テーブルの商品名列を使用してグラフのデータをフィルターし、次の図のように、選択した商品について営業担当者が記録した売上を表示できます。

 

結合の種類のカスタマイズ

初期設定では、Zoho Analyticsは左外部結合を使用してテーブルを結合します。使用可能な結合の種類は次のとおりです。

左外部結合:子テーブル(左)のすべての行と、親テーブル(右)の一致する行のみを使用してレポートが作成されます。行の照合には、子テーブルと親テーブルの間に設定されたルックアップ列が使用されます。初期設定では、この結合の種類が使用されます。この場合、売上テーブルが子、営業担当者テーブルが親になります。

右外部結合:親テーブル(右)のすべての行と、子テーブル(左)の一致する行のみを使用してレポートが作成されます。行の照合には、親テーブルと子テーブルの間に設定されたルックアップ列が使用されます。この場合、営業担当者テーブルが子、売上テーブルが親になります。

 

結合の種類は変更できます。変更するには、次の手順を実行します。

  • グラフデザイナーで[関係を表示]アイコンをクリックし、[一覧表示]を選択します。
  • 表示されたこのレポートで使用されているテーブル関係ダイアログで結合の種類を選択し、[適用]をクリックします。

自動結合で使用するルックアップ列とルックアップ経路のカスタマイズ

ワークスペースでは、さまざまなルックアップ列を使用して複数のテーブルを関連付けることができます。レポートを作成すると、Zoho Analyticsはテーブル間に作成された適切なルックアップ列(ルックアップ経路)を使用し、自動結合機能によってレポートを生成します。

ただし、特定の要件に適さない場合があります。このような場合、[ルックアップ経路の設定]オプションを使用すると、レポートの作成に使用するテーブル間のルックアップ経路を選択できます。

不具合管理ワークスペースのモデルを例に説明します。ここでは、不具合テーブルとユーザーテーブルが、担当者ID報告者IDという2つのルックアップ列を使用して直接結合されています。また、不具合テーブルには、プロジェクトIDを使用したプロジェクトテーブルへのルックアップがあります。プロジェクトテーブルとユーザーテーブルは、所有者IDユーザーID間のルックアップを使用して結合されています。これにより、不具合テーブルとユーザーテーブルがプロジェクトテーブルを介して間接的に関連付けられます。

結合に使用するルックアップ列のカスタマイズ

上記のモデルを使用して、ユーザーが報告した不具合レポートを作成する例を説明します。各ユーザーが報告した不具合のレポートを作成する際、Zoho Analyticsでは初期設定で、ユーザーテーブルへの担当者IDのルックアップが使用される場合があります。この場合、各ユーザーに割り当てられた不具合が表示されるため、目的の結果にはなりません。

この場合、使用するルックアップ列として報告者IDを選択することで変更できます。結合に使用するルックアップ列を変更する方法を次の図に示します。

これにより、以下のような[ユーザーが報告した不具合]レポートが生成されます。

結合に使用する複数のルックアップ列の選択

経路内の各テーブルの組み合わせに対して、複数のルックアップ列を選択することもできます。これにより、複数の条件を満たすデータを使用してレポートを作成できます。たとえば、担当者と報告者が同じユーザーである不具合のレポートを作成するとします。この場合、担当者IDと報告者IDの両方をルックアップ列として選択します。結合に使用する両方のルックアップ列を選択する方法を次の図に示します。

結合に使用するルックアップ経路のカスタマイズ

Zoho Analyticsでは、テーブルの結合に使用するルックアップ経路を変更することもできます。

たとえば、プロジェクトの所有者別に、各プロジェクトで報告された不具合のレポートを作成するとします。不具合テーブルとユーザーテーブルは直接結合されているため、Zoho Analyticsでは、プロジェクト別に分類されたユーザーに割り当てられた不具合のレポートが生成されます。レポートの生成時に、中間のプロジェクトテーブルは無視されます。

目的のレポートを作成するには、不具合テーブルとユーザーテーブルをプロジェクトテーブルを介して結合します。テーブルの結合に使用するルックアップ経路を変更する方法を次の図に示します。

これにより、不具合テーブルがプロジェクトテーブルを介してユーザーテーブルに関連付けられ、プロジェクトの所有者(ユーザー)別に、各プロジェクトで報告された不具合のデータが取得されます。

メモ:2つのテーブルを関連付ける経路は、1つだけ設定できます。レポート内で、同じテーブルの2つの列に異なる経路を設定することはできません。ただし、異なるテーブルの列には、それぞれ異なる経路を設定できます。

クエリーテーブルを使用した結合

自動結合機能で生成されたレポートが特定の要件を満たさない場合は、テーブルを結合するクエリーテーブルを作成し、それを使用してレポートを作成できます。SQLのSELECT JOINクエリーを使用してクエリーテーブルを作成すると、共通の列を使用して別々のテーブルを結合し、両方のテーブルから必要なデータを取得できます。
たとえば、売上テーブルと営業担当者テーブルを結合し、各営業担当者の売上データを取得するクエリーを、以下のように作成できます。

 

上記のクエリー例では、売上テーブルと営業担当者テーブルを結合しています。必要なテーブルを結合するクエリーテーブルを作成すると、Zoho Analyticsでそのクエリーテーブルを使用し、分析や可視化のためのさまざまな種類のレポートを作成できます。クエリーテーブルについて詳しくは、こちらをご参照ください。