統合の例: クラス、生徒、成績

データポータルで複数の関連ソースのデータを統合して、関係をモデル化し、統合されたマルチテーブル レポートを作成します。このチュートリアルのサンプルデータには、教育機関の 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 などのデータベースに格納することもできます。

  1. 新しいレポートを作成する。
  2. サンプルデータに対応する次の 3 つのデータソースを追加します。
    1. クラス
    2. 学生
    3. 採点

詳しくは、データソースを作成、編集する方法についての記事をご覧ください。

質問 1: 生徒、クラス、収めた成績について

質問: 「どの生徒がどのクラスを受講したか?各クラスで各生徒が収めた成績は?」

この質問に回答する手順は次のとおりです。

  1. 新しい統合を作成します。
  2. 次のディメンションを指定して、Grades テーブルを追加します。
    1. student_id
    2. class_id
    3. grade
  3. 次のディメンションを指定して、Students テーブルを追加します。
    1. student_id
    2. student_name
  4. 次のディメンションを指定して、Classes テーブルを追加します。
    1. class_id
    2. class_name
  5. student_id で Grades を Students に結合します。
  6. class_id を使用して、Grades を Classes に結合します。
  7. 両方の結合オペレーションを左外部結合に設定します。 統合設定には、Grades テーブルと Students テーブルの間、および Students テーブルと Classes テーブルの間で選択された左外部結合オペレーションが表示されます。
  8. 統合を保存して、エディタを閉じます。
  9. student_name、class_name、grade の各フィールドを使用してテーブルをレポートに追加します。
  10. テーブルを 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. 質問 1 と同じ統合を使用します。
  2. レポートにテーブルを追加します。
  3. ディメンションとして class_name を、指標として grade を追加します。
  4. grade フィールドを次のように編集します。
    1. 名前を「max_grade」に変更します。
    2. 集計を MAX に設定します。
  5. テーブルを max_grade の降順で並べ替えます。

    [テーブルの設定] タブ。データソースに統合データ、ディメンションに class_name、指標に max_grade が指定されています。

テーブルは次のようになります。

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: クラスごとの成績の最高点を収めた生徒

質問: 「各クラスで最高点を収めた生徒は誰か?」

この質問に回答する手順は次のとおりです。

  1. 新しい統合を作成します。
  2. 次のディメンションを指定して、Classes テーブルを追加します。
    1. class_id
    2. class_name
  3. Grades テーブルを追加して「Grades 1」という名前を付け、ディメンション class_id を追加します。
  4. 指標として grade を追加し、集計方法を MAX に設定します。
  5. grade を max_grade に名前を変更する。
  6. もう一度 Grades テーブルを追加し、「Grades 2」と名前を付けて、次のディメンションを追加します。
    1. student_id
    2. class_id
    3. grade
  7. Students テーブルを追加して、次のディメンションを指定します。
    1. student_id
    2. student_name
  8. マージごとに左外部結合を使用します。
  9. class_id を使用して、Classes を Grades 1 に結合します。
  10. 次を使用して Grades 1 を Grades 2 に結合します。
    1. class_id = class_id
    2. max_grade = grade
  11. student_id を使って、Grades 2 を Students に結合します。

    統合設定には、Classes テーブルと Grades 1 テーブル、Grades 1 テーブルと Grades 2 テーブル、Grades 2 テーブルと Students テーブルの間で選択された左外部結合条件が表示されます。

  12. 統合を保存して、エディタを閉じます。

  13. student_name、class_name、max_grade の各フィールドを使用してテーブルをレポートに追加します。

    統合データテーブル グラフの [設定] タブ。student_name、class_name、max_grade のディメンションと max_grade の指標が選択されています。

テーブルは次のようになります。

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

次のステップ

詳しくは、統合に関するヒントと高度な概念をご覧ください。