SQLおすすめの勉強法・参考書
SQLのクエリを書きリレーショナルデータベース(RDB)から自在にデータ集計ができることは、データアナリスト必須の素養の一つです。
しかし、学生のうちは使う機会がない人がほとんどで、 新卒入社していきなり使うことになり面食らう人も多いでしょう。
また、今までSQLを書いてきた人でも、
- 売上げランキングトップの商品をカテゴリごとに取ってくる
- アクセスログからセッション単位の滞在時間を集計する
など、少し複雑な処理になるとどう書けばいいかわからない、という人もいるかと思います。
本記事ではそういった人を対象に、SQLのおすすめ勉強法と参考書をご紹介いたします。
はじめに
SQLと一口に言っても、複数の種類があり、それぞれ書き方が少しずつ異なります。 代表的なものだけでMySQL, PostgreSQL, SQLiteなどがありますし、 BigQueryやRedshiftといったクラウドDWHもそれぞれSQLベースの構文を持っています。
とはいえ、種類によって異なるといっても方言のようなもので、微妙な差異はありますが基本的なクエリの書き方はほぼ同じです。
したがって、初学者は最初の内はこだわる必要はなく、代表的なものを一つ抑えておけば他のSQLも容易に対応できるでしょう。
もし迷うのであれば、入門書籍の比較的多いMySQLから始めることをお勧めします。
入門レベル
システム・アルゴリズム開発をやるにしろレポーティングやTableau等ダッシュボード作成をメインに据えるにしろ、新卒で入社したら最初の2か月のうちにSQLの簡単なクエリは書けるようにしておくことをお勧めします。
思いがけないところで広く必要になる機会に出くわします。
スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ) 中山清喬
初歩的なとこからわかりやすく、入門としてかなりおすすめです。
巻末のドリルも使いやすいです。
SQLほんの少しでもわかる場合は、ドリルから手を付けてわからなかったら本文読む、という進め方をお勧めします。
A, B, Cと問題が分かれていますが、難易度はほぼ一緒です。
題材だけが異なるので、好きなのを一つ選びましょう。*1
~中級レベル
条件分岐や行間比較を使って少し複雑なクエリを書きたくなったら以下の書籍を参照することをお勧めします。
特にWindow関数は上記の入門レベルの本には掲載されていないので、下記の本などで抑えておくと何かの時に役立ちます。
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS) ミック
SQLの歴史的経緯や設計思想を交えつつ、通常のSQL入門書では盲点となるようなポイントごとに記述がなされています。
CASE文を書いた集計や不等式条件を用いたJOINなど、「こんな書き方もできるんだ!」と驚くことも多いです。
同著者のSQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)も効率の良いクエリを書きたい人におすすめです。
10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く (Informatics &IDEA) 青木 峰郎
実践を見据えたクエリの書き方が要領よくコンパクトにまとまっているほか、後半は分析基盤についても述べられています。
9章の縦持ち・横持ち変換だけでも目を通しておくと便利です。
レシピ・パターン集
場面に合わせた実用的なクエリが豊富に掲載されています。
DBシステムごとに実行可能かどうかも併記されているので、 普段使わないDB環境でクエリを書く時にも便利です。
前処理大全[データ分析のためのSQL/R/Python実践テクニック] 本橋 智光
シチュエーション別に、SQL, R, Pythonの3種類のコードが併記されており、読み物としても面白いです。
マニアレベル(読んでない)
SQLの世界的第一人者の手によって書かれた聖典です。 極めたい方は是非。
*1:第1版での情報です。現行の第2版では確認していません。