データポータルで複数の関連ソースのデータを統合して、関係をモデル化し、統合されたマルチテーブル レポートを作成します。このチュートリアルのサンプルデータには、教育機関の 3 つのデータセット(クラス、登録済みの生徒、成績)が含まれています。これらのデータセットを 1 つのデータセットに統合して、生徒の成績に関する質問に答えることができます。
答えを要する質問
この例では、データに関する次のような質問の答えを得ることができます。
- どの生徒がどのクラスを受講し、各生徒が各クラスでどのような成績を収めましたか?
- 各クラスの成績の最高点は何点でしたか?
- 各クラスで最高点を取った生徒は誰ですか?
サンプルデータ
この例で使用されているデータは次のとおりです。
クラス:
| class_id |
class_name |
|---|---|
| c1 |
Underwater basket weaving |
| c2 |
Home fusion made easy |
| c3 |
How to train an attack iguana |
| c4 |
Learn SQL for fun and profit |
学生:
| student_id |
student_name |
|---|---|
| s1 |
Brett 氏 |
| s2 |
Rick |
| s3 |
Susanna |
| s4 |
Jennifer |
成績:
| student_id |
class_id |
学年 |
|---|---|---|
| s1 |
c1 |
2 |
| s2 |
c1 |
99 |
| s3 |
c1 |
65 |
| s4 |
c1 |
3 |
| s2 |
c2 |
38 |
| s3 |
c2 |
88 |
| s4 |
c2 |
48 |
| s1 |
c3 |
7 |
| s4 |
c3 |
32 |
| s1 |
c4 |
94 |
| s2 |
c4 |
63 |
| s3 |
c4 |
75 |
| s4 |
c4 |
20 |
設定
まず、データポータルでデータソースを作成して、データに接続します。デモレポートでは基となるデータにスプレッドシートが使用されていますが、このデータを BigQuery や MySQL などのデータベースに格納することもできます。
- 新しいレポートを作成する。
- サンプルデータに対応する次の 3 つのデータソースを追加します。
- クラス
- 学生
- 採点
詳しくは、データソースを作成、編集する方法についての記事をご覧ください。
質問 1: 生徒、クラス、収めた成績について
質問: 「どの生徒がどのクラスを受講したか?各クラスで各生徒が収めた成績は?」
この質問に回答する手順は次のとおりです。
- 新しい統合を作成します。
- 次のディメンションを指定して、Grades テーブルを追加します。
student_idclass_idgrade
- 次のディメンションを指定して、Students テーブルを追加します。
student_idstudent_name
- 次のディメンションを指定して、Classes テーブルを追加します。
class_idclass_name
student_idで Grades を Students に結合します。class_idを使用して、Grades を Classes に結合します。- 両方の結合オペレーションを左外部結合に設定します。

- 統合を保存して、エディタを閉じます。
student_name、class_name、gradeの各フィールドを使用してテーブルをレポートに追加します。- テーブルを
student_nameの降順で並べ替えます。
テーブルは次のようになります。
| student_name | class_name | 採点する |
|---|---|---|
| Brett 氏 | Underwater basket weaving | 2 |
| Brett 氏 | How to train an attack iguana | 7 |
| Brett 氏 | Learn SQL for fun and profit | 94 |
| Jennifer | Underwater basket weaving | 3 |
| Jennifer | Home fusion made easy | 48 |
| Jennifer | How to train an attack iguana | 32 |
| Jennifer | Learn SQL for fun and profit | 20 |
| Rick | Underwater basket weaving | 99 |
| Rick | Home fusion made easy | 38 |
| Rick | Learn SQL for fun and profit | 63 |
| Susanna | Underwater basket weaving | 65 |
| Susanna | Home fusion made easy | 88 |
| Susanna | Learn SQL for fun and profit | 75 |
質問 2: クラス別の成績の最高点
質問: 「各クラスの成績の最高点は?」
この質問に回答する手順は次のとおりです。
- 質問 1 と同じ統合を使用します。
- レポートにテーブルを追加します。
- ディメンションとして
class_nameを、指標としてgradeを追加します。 gradeフィールドを次のように編集します。- 名前を「
max_grade」に変更します。 - 集計を MAX に設定します。
- 名前を「
テーブルを
max_gradeの降順で並べ替えます。![[テーブルの設定] タブ。データソースに統合データ、ディメンションに class_name、指標に max_grade が指定されています。](https://docs.cloud.google.cn/static/data-studio/images/max-grade-table-2022-02-15.png?hl=ja)
テーブルは次のようになります。
| class_name | max_grade |
|---|---|
| Underwater basket weaving | 99 |
| Learn SQL for fun and profit | 94 |
| How to train an attack iguana | 32 |
| Home fusion made easy | 88 |
質問 3: クラスごとの成績の最高点を収めた生徒
質問: 「各クラスで最高点を収めた生徒は誰か?」
この質問に回答する手順は次のとおりです。
- 新しい統合を作成します。
- 次のディメンションを指定して、Classes テーブルを追加します。
class_idclass_name
- Grades テーブルを追加して「Grades 1」という名前を付け、ディメンション
class_idを追加します。 - 指標として
gradeを追加し、集計方法を MAX に設定します。 gradeをmax_gradeに名前を変更する。- もう一度 Grades テーブルを追加し、「Grades 2」と名前を付けて、次のディメンションを追加します。
student_idclass_idgrade
- Students テーブルを追加して、次のディメンションを指定します。
student_idstudent_name
- マージごとに左外部結合を使用します。
class_idを使用して、Classes を Grades 1 に結合します。- 次を使用して Grades 1 を Grades 2 に結合します。
class_id = class_idmax_grade = grade
student_idを使って、Grades 2 を Students に結合します。
統合を保存して、エディタを閉じます。
student_name、class_name、max_gradeの各フィールドを使用してテーブルをレポートに追加します。![統合データテーブル グラフの [設定] タブ。student_name、class_name、max_grade のディメンションと max_grade の指標が選択されています。](https://docs.cloud.google.cn/static/data-studio/images/max-grade-student-class-table-2022-02-15.png?hl=ja)
テーブルは次のようになります。
| student_name | class_name | max_grade |
|---|---|---|
| Rick | Underwater basket weaving | 99 |
| Brett 氏 | Learn SQL for fun and profit | 94 |
| Susanna | Home fusion made easy | 88 |
| Jennifer | How to train an attack iguana | 32 |
次のステップ
詳しくは、統合に関するヒントと高度な概念をご覧ください。