見出し画像

SQL初心者の学習法~非エンジニアが半年でSQLかけるようになるまで~

(この記事は3,304文字、約5分で読めます)

株式会社カンムでマーケティングをしているguchiこと山口篤志です。

今回はカンムに入社してから半年で書けるようになったSQLに関してどのように学習したかをまとめます。

「SQLかける」の定義は、業務で抽出したいデータの90%以上自分で出せる状態としています。

この記事はこんな人にオススメです↓↓↓

・SQL初心者
・SQL未経験者
・カンムに興味のある人
・マーケター、リサーチャーなどデータに携わる人

▷入社するまではSQLの存在も知らなかった


私は2021年にカンムに入社したのですが、カンムから内定が出た際に入社後は決済履歴からユーザー分析を行うためにSQLを使う必要があると言う話を聞き不安だったことを覚えています。

なぜなら私はエンジニア経験もなく、これまで約10年メーカーでマーケティング業務をしていてExcelは毎日のように使っていましたがSQLは使っておらず、存在すら知らない状態だったから。

一方でカンムの社員ブログを見ていると、エンジニア職ではないけれどSQLができるようになったというものが多く見れられたので、自分もなんとかできるんじゃないかという想いもあり入社を迎えました。


▷クエリエラー連発のSQL



カンムに入社初日にSQLの話があった際に、毎週火曜日にスパルタンSQLという勉強会を開催していることを知りました。

もちろんすぐ参加したのですが、勉強会の初回受講で挫折しかけました。

と言うのも、正しいクエリを見ると分かった気がするが、いざ0から自分でクエリを書くと手が止まるしエラーを連発させる。エラーが出ずにデータが抽出できたとしても表記が異なっていて誤ったデータになる。

以下は自作の例だが、勉強会の序盤に学ぶこのクエリを学んで分かった気になった後に0から書いてみると書けず悔しかったのを覚えています。

--2022.12月中にサービス登録したユーザーのuserid・登録日を抽出する
select 
   userid,
   register_at at time zone 'jst'
from
  hoge
where
    register_at>='2022-12-01 00:00:00' at time zone 'jst'
    and register_at<'2023-01-01 00:00:00' at time zone 'jst'

SQLは量をこなさないとできるようにならない。

当たりまえのことですが、SQLに触れた初日にこのことを強く実感し業務とは別に学ぶことを決心。


▷「学ぶ->クエリを書く」のサイクルを大量に行った

今の状態になるまでに何が一番のポイントですか?と聞かれたら即この回答をします。

6カ月でどのくらい書いたかは記録として残っていませんが、エラーや検算も含めて500回以上はクエリを実行をしたと思います。質より量。

クエリは本やネットで分かった状態になってもいざ書いてみるとうまくいかないもの。なので学んだことはすぐクエリを書く。書いて書いて書きまくって、後日調べなくてもできるようにする。

感覚としては学生時代部活でやっていた野球のバッティングフォームの型を体に覚えさせる過程と同じで、学んだことを意識しながら素振りして、それを何度も行って自分の体にフォームを覚えさせるイメージ。

ちなみに学んだことをクエリで書くと新たな疑問も出る。その時はまた調べるクエリを書く。初期のころは毎日SQLで○○のようにデータを出したい場合はどのようにクエリを書けばよいのかを起きている間ずっと頭の片隅で考えていた記憶。

クエリを調べる際は以下の参考書を見ていました。これらは業務中常に手元置き、すぐに調べられるようにしていました。


▷[学習期間別] 3つのSQL参考書


以下に記すのはカンムのスパルタンSQLの講師であり師匠のthirayu,tsuke,teshimaの3名が良いと言った3つの本で自分のバイブルとなった本。「金額が高い」と思うかもしれませんが、ここに記載の本は自分の学習工程の中で金額以上の価値出したと言える本です。

_______________
1~3ヶ月目
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

業務時間後に必ず読んでいました。ブラウザ上のSQLがかける環境でクエリが書けるので重宝。寝る前にも読んでいました。この期間、自分の枕の横にこの本が常駐。

_______________
3~5ヶ月目
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

ある程度基礎的な文章は書けるようになってきたかなと思った後に読み始めた本。この本も枕の横に常駐。この本読み終えた後window関数を使う自分がイケてる感覚になり、window関数使いたがりマンになりました。記事を書いている現在は卒業。

_______________
6ヶ月目~現在
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

今でも定期的に見る相棒のような一冊。現在クエリを書いて迷った時にはまずこの本を見るほどで、これなしで仕事はできない。※この本は枕の横ではなく本棚に常駐。


▷調べてできないものは積極的に聞いた

カンムの社内slackの中でSQL専門のチャンネルがあります。これはSQLのどんな質問も回答が返ってくる魔法のチャンネル。

社内の色々な人が早いタイミングで回答をくれるので初心者の自分には本当にありがたいチャンネルでした。みんなの優しさに甘え、初歩的かなと思うものも積極的に質問しました。

SQL学習2カ月目の質問の様子


▷スパルタンSQL毎週受講した

前述しておりますが、カンムには毎週火曜17:00-18:00でスパルタンSQLというSQL勉強会の時間があります。

詳細はこちら↓↓↓

初級、中級とクラスが分かれていて各クラスにSQL力が卓越した講師が手取り足取り教えてくれます。

初級、中級ともに問題があってそれを解くという形式で進めているが、日々の業務で使用するSQLで困っていることもこの時間で相談できます。私はこのスパルタンSQLは毎週出席していました。


▷6カ月後の結果

入社してちょうど6カ月のタイミングでスパルタン初級・中級全問クリアすることができました。

6カ月での全問クリアが早いのか遅いのかは分からないですが、この時には日々の業務で抽出したいデータの90%以上は自分でクエリを書いて抽出できるようになっていたので個人的には良いと考えています。

社内slackより。温かい反応を頂いた。


ちなみにクエリを書く上で社内のいろんな方に迷惑をかけたのですが、迷惑をかけたときにはいつも「ミスええで。もっとクエリ書きなや。分からんことあったら教えるで」スタンスで対応してくれる環境も自分にとってはクエリ力が上達した理由なのかなと思っています。

SQL学習3カ月目。今となっては考えられない重量級クエリを書いたときのCTOの対応


▷まとめ

・SQL初心者の上達のキーワードは「質より量」
・学んだあとにクエリを書きまくることがオススメ
・分からなければ身近な人に聞くのもアリ
・カンムではSQLの知識がない人でも学んで業務に生かせる環境がある

今回はSQLの勉強法方法についてまとめました。SQL学んだ後に思ったのは「SQLはやればできる」ということ。

全てにおいて同じことが言えると思いますが、自分が学んだものの中でSQLは「やればできる」がかなり体感できるものだと思っています。

SQL学んだ副産物として、スプレッドシートのQuery関数も使えるようになりスプレッドシートに落としたアンケート結果を加工する時の工数&ミス削減につなげることもできました。

----------------✂--------------------

最後に宣伝!

カンムでは引き続き採用を強化しております。気になった方はぜひチェックしてください!


#SQL #Postgre #BigQuery #勉強法 #スプレッドシート #マーケティング   #2022年の推しnote #テクニック #ビジネス #ビジネス書 #note #スキしてみて #スキ #スキありがとう #note術 #fintech  

この記事が参加している募集

スキしてみて

サポート頂いたお金は全てにんにく注射に使われます。にんにく注射でnote記事を書く活力を注入します!