データ設計(モデリング)とデータ準備

データ設計(モデリング)とデータ準備

Zoho Analyticsでは、ルックアップ列と呼ばれる機能を使用して複数のテーブル同士を関連付けることができます。これにより、異なるテーブルのデータを組み合わせてレポートを作成することが可能です。一方、単に異なるテーブルを関連付けるだけではなく、複数のテーブルを結合して1つのテーブルとしてデータを扱いたい場合は、データの結合機能を使用します。


たとえば、「売上」のワークスペースがあり、ワークスペース内には各年の売上データのテーブルが保存されているとします(例:「売上2016」、「売上2017」など)。そして、「売上2016」、「売上2017」のテーブルを組み合わせて新しいテーブルを作成し、すべての年度の売上をまとめて分析したいとします。  このような場合に、データの結合機能が役立ちます。データの結合機能を使用することで、複数のテーブルのデータを結合し、1件のテーブルとして保存できます。保存したテーブルをもとにレポートを作成することが可能です。


このように複数のテーブルのデータを1件のテーブルとして保存するにあたって、クエリーテーブル機能を使用します。

1.データの結合とは?

データの結合とは、複数のテーブルのデータを結合して、1件のテーブルを作成する方法です。このテーブルをもとにレポートを作成したり、データを分析したりできます。複数のテーブルのデータを1件のテーブルとして作成するにあたって、クエリーテーブル機能を使用します。


2.クエリーテーブルとは?

クエリーテーブルとは、複数のテーブルからデータを抽出し、独自のテーブルを作成する機能です。作成したクエリーテーブルをもとにレポートを作成したり、データを分析したりすることが可能です。複数のテーブルからデータを抽出するにあたって、データベースでデータを扱うための「SQL」(Structured Query Language)と呼ばれる言語におけるSELECT構文を使用できます。クエリーテーブルによって出力されたデータは、テーブルと同様のデータ構造を持ちます。クエリーテーブルを他のユーザーに共有したり、クエリーテーブルをもとに別のクエリーテーブルを作成したりすることも可能です。

複数のテーブルからのデータの抽出、複数のテーブルのデータの結合(UNION)、データの加工処理、関数の適用など、さまざまな操作を行うことができます。

クエリーテーブルの詳細については、こちらをご参照ください。


3.複数のテーブルのデータを結合するには?

クエリーテーブル機能を使用して複数のテーブルのデータを結合するにあたって、「SQL」(Structured Query Language)と呼ばれる言語におけるUNION構文を使用します。 

複数のテーブルのデータを結合するには、同じデータの種類の列が必要です。

たとえば、2016年と2017年の売上データを含む2つのテーブル「売上2016」、「売上2017」がそれぞれあるとします。

テーブル「売上2016」のデータ構造は、以下のとおりです。



テーブル「売上2017」のデータ構造は、以下のとおりです。



この例の場合においてこの2つのテーブルを結合するには、以下の手順を実施します:

  • 「売上2016」または「売上2017」のテーブルを開きます。
  • 画面左側のメニューから[作成する]→[クエリーテーブル]の順にクリックします。
  • クエリーの編集画面で、以下のクエリーを入力します。



このクエリーを実行すると、「売上2016」と「売上2017」のテーブルのデータが結合されます。クエリーの実行後、クエリーによって取得されるデータのサンプルが[実行結果]タブに表示されます。

SELECT
"日付",
"顧客名",
"商品",
"商品カテゴリー",
"売上",
"費用"

FROM"売上2016" 
UNION ALL
SELECT

"日付"
"顧客名",
"商品",
"商品カテゴリー",
"売上",
"費用"

FROM"売上2017" 

  • [保存する]をクリックして、クエリーテーブルを保存します。

UNION構文の詳細については、こちらをクリックしてください。


4.複数のテーブルを結合する際の注意事項は?

複数のテーブルを結合する前に、次の条件が満たされていることを確認してください。

  • 結合対象となるテーブルのデータ構造は、同様のものである必要があります。 
    結合対象となるテーブルには、同じ数の列が必要です。たとえば、売上のデータが含まれるテーブルと部門のデータが含まれているテーブルなど、列数や種類が異なるテーブル同士を結合することはできません。
  • 結合対象となる列は、同様のデータの種類である必要があります。

上記の基準のいずれかが満たされていない場合、テーブルを結合することはできません。


5.テーブルを結合するにあたって、選択可能なテーブルの上限はありますか?

いいえ。テーブルを結合するにあたって、いくつでもテーブルを選択できます。


6.クエリーテーブルのデータの取得元である親テーブル内のデータを変更すると、クエリーテーブルにも反映されますか?

はい。クエリーテーブルのデータの取得元である親テーブル内のデータを変更すると、クエリーテーブルにも自動で反映されます。


7.「SELECT構文で使用されている列の数が等しいかどうかご確認ください」というエラーメッセージが表示されます。どうすればよいですか?

テーブルを結合する際に指定したテーブルの列の数が等しくない場合、上記のエラーメッセージが表示されます。

たとえば、テーブル「売上2016」で6件の列を指定し、テーブル「売上2017」で5件の列を指定してテーブルを結合しようとすると、このエラーが発生します。

このエラーを解決するには、両方のテーブルにおける列の数が等しくなるように列を指定してください。


8.「SQLクエリー内で列の表示名が重複しています」というエラーメッセージが表示されます。どうすればよいですか?

このエラーが発生する理由は以下のとおりです。

  • 列名が重複している。
    たとえば、クエリーテーブルに使用する列名に、「地域」という名前の列が2件含まれている場合、このエラーが発生します。
  • 列の別名(エイリアス名)が、親テーブルの他の列名と同じになっている。
    以下の例では、列「商品カテゴリー」の別名(エイリアス名)が「商品」として指定されています。しかし、テーブル内には「商品」という別の列がすでに存在しており、この列もクエリー内で指定されているため列名が重複してしまい、エラーが発生します。 



このエラーを回避するには、すべての列名が重複しないようにする必要があります。重複している場合は、重複する列名の別名(エイリアス名)として別の名前を設定し、列名が重複しないようにします。


9.結合したテーブルのデータをもとにレポートを作成できますか?

はい。クエリーテーブルをもとにさまざまな種類のレポートを作成できます。クエリーテーブルでレポートを作成する方法は、通常のテーブルからレポートを作成する方法と同様です。詳細については、こちらをご参照ください。


はい、できます。クエリーテーブルを別のテーブルやクエリーテーブルと関連付けるにあたって、ルックアップ列を使用します。

ルックアップ列を使用してクエリーテーブルと別のテーブルを関連付けるには、以下の手順を実施します:

  • 対象のクエリーテーブルを開きます。
  • ルックアップ列に変更する列を選択します。
  • 対象の列名を右クリックし、メニューから[ルックアップ列に変更する]を選択します。
  • ルックアップ列への変更画面で、参照先の列を選択します。
  • [保存する]をクリックします。

ルックアップ列の作成方法に関する詳細については、こちらをご参照ください。


11.クエリーテーブルに関する参考情報はどこで確認できますか?

クエリーテーブルに関する詳細については、こちらのヘルプをご参照ください。



関係データモデル | 数式の作成 | クエリーテーブル