Zoho Analyticsでは、次のいずれかの方法でテーブルを結合してレポートを作成できます。
複数のテーブルにまたがるデータを使用してレポートを作成する場合、Zoho Analyticsの自動結合機能を利用できます。テーブルがルックアップ列で関連付けられている場合、この機能によってレポート作成時にテーブルが自動的に結合されます。この機能を使用するには、2つのテーブルがルックアップ列で関連付けられていることを指定する必要があります。2つのテーブル間にルックアップ関係を設定するには、両方のテーブルに共通する列が少なくとも1つ必要です。例を見ながら詳しく説明します。
次の例では、ルックアップ列を設定する方法と、ルックアップ関係に基づいてレポート作成時に自動結合機能でテーブルが結合される仕組みを説明します。
「店舗売上データベース」モデル:
上記の店舗売上データベースモデルでは、売上テーブルと営業担当者テーブルに、営業担当者IDという共通の列があります。「売上」テーブルでは、各売上が、その売上を担当した営業担当者の営業担当者IDに関連付けられています。「営業担当者」テーブルでは、各営業担当者が営業担当者ID列に指定された一意のIDで識別されます。同様に、売上テーブルと商品の詳細テーブルには、Product_IDという共通の列があります。「売上」テーブルでは、各売上がProduct_ID列で識別される商品に関連付けられています。商品テーブルでは、各商品がProduct_ID列に指定された一意のIDで識別されます。
これらの関連列を使用して、営業担当者ID列を通じて売上テーブルと営業担当者テーブルの間にルックアップ関係を設定できます。同様に、売上テーブルと商品の詳細テーブルの間には、共通のProduct_ID列に基づいてルックアップ関係を設定できます。ルックアップ列の関係を設定すると、これらのテーブルに基づいてレポートを作成する際に、Zoho Analyticsの自動結合機能によってテーブルのデータが自動的に結合されます。
ルックアップは、既存のテーブル、データのインポート時、またはレポートエディターから設定できます。次のセクションでは、テーブル間にルックアップを設定する方法を説明します。
このセクションでは、テーブルからルックアップ関係を設定する方法を説明します。
前のセクションで説明したテーブルを含む店舗売上ワークスペースがあるとします。共通の営業担当者ID列を使用して、売上テーブルと営業担当者テーブルの間にルックアップを設定します。
次の手順でもルックアップ列を作成できます。
これで、ルックアップ列営業担当者IDを通じて、売上テーブルと営業担当者テーブルの間に関係が設定されます。売上テーブルは営業担当者テーブルの列を参照するため、ここでは売上テーブルを子テーブル、営業担当者テーブルを親テーブルと呼びます。
同様に、商品ID列を使用して、売上テーブルと商品の詳細テーブルの間にルックアップ関係を設定できます。この場合、売上テーブルがルックアップ列を持つ子テーブル、商品の詳細テーブルが親テーブルになります。
Zoho Analyticsでは、データのインポート時に類似する列が自動的に識別され、ルックアップの候補として提示されます。次のセクションでは、この仕組みについて説明します。
別のテーブルのデータを追加する必要がある場合、Zoho Analyticsではレポートエディターからテーブルを結合できます。たとえば、営業担当者別の売上レポートを作成するとします。売上テーブルのデータに営業担当者IDしかない場合でも、営業担当者テーブルから営業担当者名を追加できます。次のセクションでは、この仕組みについて説明します。
ルックアップ列を使用してテーブル間を関連付けると、ルックアップ関係を持つ任意のテーブルを選択してレポートを作成できます。複数のテーブルの列をドラッグ&ドロップすると、Zoho Analyticsによってこれらのテーブルのデータが自動的に結合され、レポートが生成されます。
自動結合機能を使用して営業担当者別の売上グラフを作成する方法は次のとおりです。
自動結合機能によって、ルックアップ列商品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でそのクエリーテーブルを使用し、分析や可視化のためのさまざまな種類のレポートを作成できます。クエリーテーブルについて詳しくは、こちらをご参照ください。