|
【カテゴリ】 データベース
SQLデータ分析・活用入門 データサイエンスの扉を開くための技術
|
WINGSプロジェクト 西潤史郎/著
山田祥寛/監修
ソシム 株式会社/発行
定価
2,860円
A5版・
400ページ・
2色
ISBN 978-4-8026-1226-5
発刊日:
2019年9月12日
|
[お知らせ] 2020/06/29、配布サンプルのバグを修正。旧バージョンをご利用の方はお手数ですが、再ダウンロードしてください。
本書の特徴
欲しいデータは自分で見つける!
本書は「データ分析」に特化したSQLの入門書です。
広く浅くの超入門ではありません。データ分析の現場で生き抜くための技術とデータを価値に変えるための思考。基礎から実践まで本腰を入れて学びたい人に向けた本格的な内容となっています。
まとめて読んで 更にスキルアップのこんな書籍
- ・SQLの基本からPHPによるWeb開発まで、図解で解説するMySQLの入門書
- 「3ステップでしっかり学ぶ MySQL入門 [改訂2版]」(技術評論社)
- ・SQLを基礎から学習/復習したいなら
- 「書き込み式SQLのドリル 改訂新版」(日経BP)
本書について取り上げていただいたブログさま
-
・サイクル&オラクル -
三原さま
-
書評:「SQLデータ分析・活用入門 データサイエンスの扉を開くための技術」① 西潤史郎 (著), 山田祥寛 (監修)(2019年10月29日)
Contents |
- 第1部 SQLによるデータ分析の基礎
- 第1章 SQLとデータ分析の世界
-
1.1 SQLによるデータ分析とは
データ分析ニーズの広がり
データとデータベース
リレーショナルデータベース管理システムとSQL
データ分析の流れ
1.2 分析システムの広がりとSQL
基幹システムと分析システムの違い
分析システムのSQLとデータベースの特徴
1.3 なぜ分析 SQLのスキルが必要なのか
データベースにある一次データを取得する
SQLは分析担当者とエンジニアにとっての「英語」
SQLは標準規格
- 第2章 データ分析環境を整える
-
2.1 データ分析環境の準備
データ分析環境の例
なければ作る、分析システム
分析の対象となるデータ
2.2 アドホック分析とレポーティングの環境
アドホック分析とレポーティングについて
アドホック分析とツール
レポーティングのツール
Redash
Superset
2.3 その他の分析ツール
スクリプト言語
R
Python
対話型環境
BIツール
Tableau
2.4 SQLクライアントをデータ分析で活用する
SQL Workbench/Jとは
基本的な SQLの実行
CSVファイルでダウンロードする
SQLのクエリ文を整形する
Workspaceで SQL 実行プロセスを保存する
- 第3章 データを「分ける」「数える」が分析の基本
-
3.1 SELECT 文でデータを分析するための基本
分析は「分ける」「数える」「モデル化する」
データを活かす、SQLによるアドホック分析
SELECT文の構造
SELECT句で列データを絞る
集約関数でデータを集計する
COUNT関数による集計
その他の集約関数
AVG関数で平均値を集計する
3.2 WHEREでデータを絞りこむ
WHERE句によるデータの絞りこみの基本
WHERE句におけるさまざまな条件の記述
複数の条件を設定するIN
LIKEによる柔軟なデータ指定
3.3 GROUP BYでデータをグループ化する
○○ごとに分ける
GROUP BY句と集約関数でグループごとの集計をする
COUNT関数以外の集約関数とGROUP BYを組み合わせる
3.4 HAVING句でデータをさらに絞りこむ
集約関数の集計結果をさらに絞りこむ
HAVING句とWHERE句の使い分け
3.5 ORDER BY句/LIMIT句でデータをさらに整える
ORDER BY でデータを並べ替える
GROUP BYとORDER BYを組み合わせる
LIMIT句で取得するデータを絞る
- 第4章 分析を効率化するSQLによる前処理
-
4.1 異なるデータ型への変換
CASE式によるラベルの変換
CASE式でカテゴリをまとめる
CASTによる変換
欠損値をデフォルト値に置き換える
4.2 数値のデータ加工
数値の表記と四則演算
1レコード内の数値データ同士を比較する
比率を求める
分母が0の場合のエラーへの対応
4.3 日付・時間のデータ加工
現在の日付/時間を取得する
指定の日付/時間を取得する
年・月・日・時・分・秒など特定データを取得する
生年月日から年齢を計算する
指定の時間の加減を行う
4.4 文字列のデータ加工
指定した数の文字列を取り出すSUBSTRING関数
文字列の分割
URL形式の文字列からドメイン名を取り出す
CONCATによる文字列の連結
- 第5章 データをさらに活用するためのテクニック
-
5.1 サブクエリを使いこなす
サブクエリとは
階層を増やしたサブクエリ
サブクエリのエイリアス
WITH句でサブクエリを見やすく
スカラサブクエリでスカラ値を扱う
HAVING句でスカラサブクエリを使う
比較演算の中でのサブクエリの注意点
相関サブクエリでサブクエリ外のデータを参照する
5.2 INとEXISTSによるデータの調査
IN述語とサブクエリを組み合わせる
EXISTS述語でデータを検査する
5.3 SQLで基本統計量を求める
HAVING句で最頻値を求める
HAVING句で中央値を求める
SQLで分位数/分散
5.4 ログデータひとつでできるユーザー分析
アクション数の推移
ユニークユーザー数の推移
新規ユーザー数の推移
サービス継続期間の把握
アクション数が3回以上のユーザーのリスト
直近7日間でアクション数が3回以上のユーザーリスト
- 第6章 複数のテーブルを扱うJOINとUNION
-
6.1 テーブルの結合とテーブルの正規化
テーブルの正規化
結合によりテーブルを横につなげる
6.2 JOIN句によるテーブルの結合
JOIN句でテーブルを内部結合する
SELECT句で結合したテーブル名を明示する
LEFT JOINでテーブルを外部結合する
FULL JOINで完全外部結合する
6.3 特殊な結合
同じテーブル同士を結合する自己結合
テーブルのすべての行の組み合わせを得るクロス結合
CROSS JOINで合計のカラムを付ける
6.4 UNIONで複数のテーブルを扱う
UNIONでテーブルを縦につなげる
UNIONで合計の行を付ける
UNIONで疑似テーブルを作成する
- 第7章 分析SQLの主役「ウィンドウ関数」徹底入門
-
7.1 ウィンドウ関数の概要
ウィンドウ関数とは
ウィンドウ関数でランキングを求める
ウィンドウ関数の構文
ウィンドウを明記する、別の表記方法
7.2 ウィンドウの範囲と順序を指定するPARTITION BYとORDER BY
PARTITION BY でグループ分け
PARTITION BYを指定しない場合のウィンドウ
ORDER BYで並べ替える
7.3 ウィンドウ関数に変身する関数と専用の関数
順序を扱うウィンドウ関数専用の関数
集約関数からウィンドウ関数に変身する関数
7.4 フレーム句を使いこなし分析SQLの達人になる
フレーム句の構文とフレームのイメージ
フレームで移動平均を求める
フレームで直近の日付を求める
RANGEによる値単位での行指定
- 第2部 SQLによるデータ分析の実践
- 第8章 SQLで小さな分析を積み重ねる
-
8.1 小さな分析を積み重ねるアドホック分析
データと対話し、全体から部分へ分析を進める
データを分けるのは「時間ごと」「グループごと」
8.2 ファクトデータを活かす時系列分析
時系列分析とは
データの確認
ウィンドウ関数で簡単、SQLで時系列分析
8.3 グループ分けを組み合わせるクロス集計
クロス集計とは
データの確認
性別・地域ごとのユーザー数集計
「地域」に連番を付与する
CASE式でテーブルを縦持ちから横持ちに変換する
8.4 実践アドホック分析1 - 全体から部分へ分析を進める
モデルのイメージ
全体の把握
GROUP BY句でグループを分ける
ウィンドウ関数によるランク付け
CASE式によるランク付け
クロス集計で表を整える
8.5 実践アドホック分析2 - 集計と深掘り
指標を追加し、3指標のランクを求める
3指標でランクを求める
ランク値ごとに集計する
集計値を求める
- 第9章 長いSQLを読み解く
-
9.1 データ分析でよくある長いSQLの読み方
内側のSELECT文から読む
SELECT文は句の処理順に読む
9.2 統計量「四分位数」を求めるSQLを読み解く
四分位数とSQL全体像
SQL全体像と読み解き順序
ランキングを算出するための相関サブクエリ
ランキングを算出するクエリ
ランキングをもとに四分位に振り分ける
9.3 「バスケット分析」のSQLを読み解く
バスケット分析について
データとSQLの確認
SQL全体像と読み解き順序
1つめの文「商品の組み合わせと購入回数」
2つめの文「商品ごとの購入回数」
3つめの文「商品が同時に購入される頻度を算出する」
9.4 「ユーザーの利用機能分析」のSQLを読み解く
「ユーザーの利用機能分析」とは
データとSQLの確認
SQL全体像と読み解き順序
1番めの文「ユーザーごとのアクションありなし」
2番め~9番めの文「アクション組み合わせの集計」
10番目の文「データ整形」
[補足]DBMS 特有関数がある場合
9.5 [番外編]既存のSQLをよりよく改善する
ウィンドウ関数 NTILEで簡単に4グループ分けを実現する
WITH句でサブクエリを整理
ランキングをウィンドウ関数により求める
PERCENT_RANK 関数とCUME_DIST 関数によるランキング
スカラサブクエリ繰り返し表記の改善
SQLの改善結果
- 第10章 データ分析が価値を生みだすために
-
10.1 データ分析が成果を出すために必要なこと
モデルとは
モデルはどう作成するのか
「式」はモデルの代表的な形
データ分析はプロセスであり成果物ではない
意志決定者とデータ分析者は分ける
国家の意思決定から発展した「インテリジェンス」
意思決定者とデータ分析者の壁
ビジョンとスキルで壁を越える
データサイエンスの実践に求められるスキル
データサイエンスのタスク
チームとしてのデータサイエンティスト
社内SQL 勉強会のすすめ
10.2 さらにデータサイエンスのスキルを身につけるための参考書籍
SQL関連
エンジニアリング関連
データサイエンス関連
ビジネス関連
10.3 結びにかえて
- 付録
-
A.1 SQLクライアント「SQL Workbench/J」の導入方法
SQL Workbench/Jのインストール手順
データベース接続設定
A.2 ダッシュボードツール「Redash」の導入方法と可視化手順
Dockerのインストール
DockerでRedash環境を構築する
データソースの設定方法
日付フォーマット設定
SQLクエリを実行してみる
数値表示のグラフ作成
円グラフ/棒グラフの作成
2つグラフの同時表示
ダッシュボードを作る
サブクエリだけ実行できる「選択実行」
クエリ結果を CSVファイルなどでダウンロード
アラートの設定
まとめ
|
|