SQL

【独学】SQLでデータ分析ができるようになる勉強方法(実体験)

本記事概要

本記事の対象者

・SQL(分析)を勉強したいと思われている方
・特に非エンジニアのマーケティング担当者やPMを想定してます

本記事の目的

・SQLを実務レベルまで上達するための勉強方法を知る
・そもそもなぜSQLによる分析が必要なのか理解する

私の経験(独学)を元に、SQLでデータ分析ができるようになった勉強方法を説明します!

私自身も独学でSQLを勉強して、今やバリバリ実務で使っているので、その経験も踏まえて説明します。

①やる気が何より大事!やる気を出すために現データアナリストとして活躍している人達の記事を読む

これが最も重要です。
そもそもなぜSQLによる分析が必要なのか、しっかり理解している人は多くないと思います。
しかしこれを自分の中で納得感を持って理解していないと、いざ勉強を始めてみて、挫折した時に続きません。
やっぱり今の自分には必要ないかも・・・と。
なのでまず私はやる気を出すために、なぜ今SQLによるデータ分析を学ぶ必要があるのか自分の中で納得感を持って理解しました。

その時に参考にしたのが以下の記事です。

①メルカリBIチームマネージャーの樫田さんの記事全般

特におすすめは以下の記事です。

メルカリの分析チームとは?その全ての疑問にひとつひとつ答えます

メルカリBIチームのミッションや仕事のあり方がわかりやすく書かれています。
樫田さんの記事は紹介したい記事が多するので、noteごと紹介させてください。笑

樫田さんのnote
具体的な分析方法でなく、分析における考え方の記事が多めです。

技術的にわからないことがあればググるなり、Qiitaで探せば大体解決できますが、
分析における考え方やどのように分析を生かすべきかといった類の記事は樫田さんの記事が非常にわかりやすいです。
文章も読みやすく、誰にでもおすすめできる記事ばかりです。

樫田さんは一貫してBIチームのミッションは意思決定を行うための情報をデータに基づいて提言するとおっしゃられています。
これって当たり前のようですが、多くの企業では当たり前ではない状況なのではないでしょうか。
偉い人の独断で意思決定がされたり、社内政治的な問題も関わってくる場合も多いかと思います。
そもそもビジネス側のメンバーにはデータを取ってくる環境がない境遇の方も多いはずです。
私もまさにそのような環境だったのですが、樫田さんの記事を参考にして、なぜデータを取得する環境が必要なのか上長にプレゼンし、今ではビジネスチーム全員に基本的なデータが渡る環境にまでなりました。

メルカリのデータ重視文化をどう醸成する? リーダー3名が実態を紐解く

の記事にも書いてありますが、データを適切に取得し、分析することで、得ることのできるメリットは以下の3つに集約されると思います。

・現状を把握するための分析

常に主要なKPI(DAU/MAU/継続率/新規獲得数etc)などを定点的にウォッチすることで、ビジネスの異常をいち早くキャッチできます。
新規獲得数が減少傾向と気付ければ、それは以前と比べてどこからの流入が減っているのか?
それはなぜなのか?
など事実ベースで突き詰めて、いち早く対策を講じることができます。

・事業戦略に必要な分析

経営的な目線の分析のことで、どの分野に投資すべきか、新規ビジネスはどこから行うべきかデータから意思決定を行うことを指します。
私は主に新規ビジネスを提案する時にこのような分析を行います。
今まではマクロなデータのみを使用した提案になっていましたが、顧客の詳細なログデータを取得できるようになったことで、以下のような提案が可能になりました。(※あくまでの例です
「A」というビジネスは過去の行動データから「B」という行動をした顧客属性のエンゲージメント率をC%高めることができると想定されます。
その結果収益が1ヶ月目にはD円だが、3ヶ月目にはE円に上ります。
これにかかる開発工数はF人月だから・・・など・・・・
このように具体的に新規ビジネスを提案することができます。

・ゴールを達成するための施策やアクションに関する分析

PDCAを適切に回すための分析になります。
さきほどのように「A」という新規ビジネスをスタートできたとして、
アクション結果を適切に取得できなければ、PDCAを回すことができません。
もし思ったより、エンゲージメント率が伸びなかった場合、想定顧客Bのどの属性の方がアクションしてくれていないのか?どうすればアクションしてくれるのか?早急にPDCAを回す必要があります。
しかし毎回エンジニアにデータ集計を依頼しているとそれだけで1週間経ってしまうこともざらにありますよね。
IT業界では特に1週間は命とりです。
早いは正義です。

②Gunosyのデータ分析ブログ

プロダクト改善のためにウォッチしておくべき7つの指標

具体的なクエリの書き方も記載されており、参考になります。
なぜその数値を取得すべきなのかもしっかり書かれており、具体的な分析手法だけでなく、データ分析の必要性を学ぶことができます。

③Pairsを運営しているエクレカさんの技術ブログ

・非エンジニアがSQLを学習する際の11の心得

SQL初心者に向けて、どのような心構えで勉強すべきかがまとめられております。
これは1年勉強して、ある程度SQLが叩けるようになった私から見て、
ほんとそうだ!遠回りしてしまった!と納得させられることが多かったので、
一読することを非常におすすめします。

これでなぜデータSQLによるデータ分析が会社にとって必要なのか、ある程度は納得感を持って頂けたと思います。
また実際に多くの企業でデータドリブンな意思決定が行われていることも実感できたのではないでしょうか。

次からは具体的に私がどのようにクエリを書くスキルを身につけたか書いていきます。

②Progateで基礎を学ぶ

まずはProgateに尽きます。
めんどくさい環境を構築する必要なく、ブラウザ上で実際にクエリを書きながら勉強することができます。(しかもたった月額980円)
まずはSQLのレッスンをすべて終わらせてください。
早い人だと2日くらいで終わると思います!

ProgateのSQLレッスンはこちら(アフィじゃないので安心して踏んでくださいw)

③自分のパソコンにSQLを叩ける環境を作る

基礎を学んだら実際あるのみです。
私の別記事にある【SQL練習】サンプルデータベースを用意するでMySQL公式のサンプルデータを使って、自分のMaCにSQLを勉強できる環境を作りましょう。
非常に簡単なので、1時間ほどでできると思います。
そして環境ができたら、自ら取得したいデータを考え、一からクエリを作ってみてください。
わからないことが多いと思いますが、そのたびググって少しずつ構文を覚えていってください。
またエラー文は学びの場なので、英語で読めないと諦めず、しっかり読んで、クエリのどこに問題があるのか、どうすれば動くのか少しずつインプットしていってください。

④後は実践あるのみ

ここまでくれば後は実践あるのみです。
会社にクエリを叩ける環境がある人は③を飛ばして、ガンガンクエリを書いてください。
わからなければ近くにいるアナリストやエンジニアに聞けば教えてくれると思います。
また会社によってはクエリサンプルを貯めたwikiなどもあるようなので、それを参考に自分で書く、エラー、直す、動くを繰り返してください。
人が書いたクエリほど参考になるものはないです。

また会社にクエリを叩く環境がない方は、②で基礎を学びながら上長にデータ分析を行うことができる環境を作るようプレゼンしましょう。
私も先輩2人(マーケター・データサイエンティスト)に助けれられながら
どうにか社内に非エンジニアでもデータ分析をできる環境を整えることができました。
最初は半信半疑だった経営人も今では「この環境が貴重な財産になっている」と言うまで、意思決定をデータ・ドリブンに行う文化ができてきました。

おわりに

具体的なクエリの書き方の記事もあげてあるので、よければ参考にしてください。

【SQL】Window関数でデシル分析をする

【SQL】CASE式で効率よく集計する(CASE WHEN)

【SQL】COALESCE()関数を使って、NULLを0に置き換える。

 

ABOUT ME
Okada Shogo
某Web系企業でアクセス解析やKPI管理をやってます。主にインハウスマーケターの方に向けて情報発信できればと思っております!