クエリの計画

SQLでのレポーティング

Tyler Pernes

Learning & Development Consultant

チャプターの目標

SQLでのレポーティング

検討すべき質問

  • どのテーブルから取得するか
  • テーブルをどう結合するか
  • どのフィールドを作成するか
  • どのフィルタを入れるか
  • 並べ替え制限は必要か
SQLでのレポーティング

シナリオ

Gold Medals by Demographic Group
(Western European Countries Only)
+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
| Winter   | Female Age 13-25   | 4     |
| Summer   | Female Age 26+     | 2     |
+----------+--------------------+-------+
SQLでのレポーティング

1 - どのテーブルから取得するか

SQLでのレポーティング

2 - テーブルはどう結合すべきか

SQLでのレポーティング

2 - テーブルはどう結合すべきか

SQLでのレポーティング

2 - テーブルはどう結合すべきか

SQLでのレポーティング

2 - テーブルはどう結合すべきか

SQLでのレポーティング

3 - 作成が必要なフィールドは?

+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
+----------+--------------------+-------+
  • season - 固定文字列
  • demographic_group - 条件付き
  • golds - SUM()
SQLでのレポーティング

4 - 必要なフィルタは?

Gold Medals by Demographic Group
(Western European Countries Only)
+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
+----------+--------------------+-------+
  • WHEREHAVING か?
  • 次元でのフィルタ = WHERE
SQLでのレポーティング

5 - 並べ替えや制限は必要?

Gold Medals by Demographic Group
(Western European Countries Only)
+----------+--------------------+-------+
| season   |  demographic_group | golds |
|----------|--------------------|-------|
| Winter   | Male Age 26+       | 13    |
| Winter   | Female Age 26+     | 8     |
| Summer   | Male Age 13-25     | 7     |
| Summer   | Female Age 13-25   | 6     |
| Winter   | Male Age 13-25     | 4     |
| Summer   | Male Age 26+       | 4     |
+----------+--------------------+-------+
  • LIMIT は不要
  • golds を降順で並べ替え
SQLでのレポーティング

Let's practice!

SQLでのレポーティング

Preparing Video For Download...