スライド 1: de-7. SQLによるデータ分析:GROUP BYを用いたグループ化と集約
スライド 2
スライド 3: 7-1. イントロダクション
スライド 4: リレーショナルデータベースの仕組み
スライド 5: 商品テーブルと購入テーブル
スライド 6: 集約の方法
スライド 7: グループ化
スライド 8: 成績テーブルの「科目」によるグループ化
スライド 9: データのグループ化を用いた集約
スライド 10: SQL における GROUP BY の基礎
スライド 11: GROUP BY の役割と書き方
スライド 12: データ分析とビジネスインテリジェンス
スライド 13: 7-2. 演習
スライド 14: いまから演習で行うこと、注意点
スライド 15: SQL 理解のための前提知識
スライド 16: SQL によるテーブル定義
スライド 17: データ追加のSQL
スライド 18: 演習1.Access の SQL ビューを用いたテーブル定義 とデータの追加
スライド 19: 演習
スライド 20
スライド 21
スライド 22
スライド 23: 間違ってしまったときは、テーブルの削除 を行ってからやり直した方が早い場合がある
スライド 24: 演習2.SQL によるグループ化と集約. Access の SQL ビューを使用.
スライド 25: Access の SQL ビューを用いた問い合わせ
スライド 26: SQL 問い合わせ(クエリ)で使用する2つのビュー
スライド 27
スライド 28
スライド 29
スライド 30
スライド 31
スライド 32
スライド 33: 7-3. 実データを用いた演習
スライド 34: 演習の目的と形式
スライド 35: 演習の内容
スライド 36: 演習で使うデータベース
スライド 37: 演習用のデータベースファイル
スライド 38:
スライド 39:
スライド 40:
スライド 41:
スライド 42:
スライド 43:
スライド 44: 全体まとめ
スライド 45
スライド 46
スライド 47
スライド 48
de
-7. SQL
によるデータ分析:
GROUP
BY
を用いたグループ化
と集約
1
金子邦彦
(データベース演習)
URL:
https://www
.kkaneko.jp/de/de/index.html
①
データベースのグループ化と集約の概念
を理解し、基本的な分析手法を習得
②
Acc
ess
の
SQL
ビューで,集計のための
SQL
を実行.結果を確認
2
7-1.
イントロダクション
3
リレーショナルデータベースの仕組み
•
データを
テーブル
と呼ばれる
表形式で保存
•
テーブル間
は
関連
で結ばれる
•
複雑な構造を持ったデータを効率的に管理することを可能
4
関連
商品
ID
商品名
単価
1
みかん
50
2
りんご
100
3
メロン
500
購入者
商品番号
X
1
X
3
Y
2
購入
商品テーブルと購入テーブル
5
関連
商品
ID
商品名
単価
1
みかん
50
2
りんご
100
3
メロン
500
購入者
商品番号
X
1
X
3
Y
2
購入
X
さんは、
1
の
みかん
と,
3
の
メロン
を買った
Y
さんは、
2
の
りんご
を買った
商品
テーブルの情報
購入
テーブルの情報
集約の方法
6
A
V
G,
MAX,
MIN,
SUM
:平均値,最大値,最小値,合計値を算出
COUNT
:行数を計算
名前
得点
居室
徳川家康
85
1
階
源義経
78
2
階
西郷隆盛
90
3
階
豊臣秀吉
82
1
階
織田信長
75
2
階
記録
テー
ブル
SELECT
A
V
G
(
得点
)
FROM
記録
;
結果
: 82
SELECT
MAX
(
得点
)
FR
OM
記録
;
結果
: 90
SELECT
MIN
(
得点
)
FR
OM
記録
;
結果
: 75
SELECT
SUM
(
得点
)
FROM
記録
;
結果
: 410
SELECT
COUNT
(*)
FROM
記録
;
結果
: 5
グループ化
グループ化
は、
同じ属性値を共有するデータ
を
集めるプロセス
.
例:
科目の「国語」、「算数」、「理科」でグループ化
例:
受講者の「
A
」、「
B
」でグループ化
それぞれの値ごとにグループに分けることで,データの分析が
容易になる
7
科目
受講者
得点
国語
A
85
国語
B
90
算数
A
90
算数
B
96
理科
A
95
科目
受講者
得点
国語
A
85
国語
B
90
科目
受講者
得点
理科
A
95
科目
受講者
得点
算数
A
90
算数
B
96
科目
受講者
得点
国語
A
85
算数
A
90
理科
A
95
科目
受講者
得点
国語
B
90
算数
B
96
科目
受講者
得点
国語
A
85
国語
B
90
算数
A
90
算数
B
96
理科
A
95
成績テーブルの「科目」によるグルー
プ化
①
成績テーブルには科目、受講者、得点が記載されている
②科目の「国語」、「算数」、「理科」のグループを形成
8
科目
受講者
得点
国語
A
85
国語
B
90
算数
A
90
算数
B
96
理科
A
95
科目
受講者
得点
国語
A
85
国語
B
90
科目
受講者
得点
理科
A
95
科目
受講者
得点
算数
A
90
算数
B
96
③
グループで、集約(行数、平均、合計など)を実施
9
国語
算数
理科
行数:2
2
1
平均:87.5
93
95
合計:175
186
95
データのグループ化を用いた集約
科目
受講者
得点
国語
A
85
国語
B
90
算数
A
90
算数
B
96
理科
A
95
科目
受講者
得点
国語
A
85
国語
B
90
科目
受講者
得点
理科
A
95
科目
受講者
得点
算数
A
90
算数
B
96
SQL
における
GROUP
BY
の基礎
•
GROUP
BY
は、特定の属性(例:科目,受講者)を基準
として、
グループ化
を行う
•
集約
を
GROUP
BY
と
組み合わせる
ことで,
グループごとの
集約結果
を得ることができる
•
これにより,データの傾向を効率的に分析することが可能
である.
10
GROUP
BY
の役割と書き方
•
SQL
問い合わせ
「
SELE
CT …
」の中で、
GROUP
BY
を使
用してデータを
グループ化
する
•
1つ以上の属性を
GROUP
BY
に指定してグループ化の基
準とする。
SELECT
科目
, COUN
T(*) FROM
成績
GROUP
BY
科目
;
11
すべての科目ごとに、受講者の数を計算