見出し画像

文系出身コミュマネが2ヶ月SQL筋トレしたらそこそこ腹筋が割れた話

こんにちは。サエキミルテといいます。
現在はRadiotalkという音声配信プラットフォームにて、プロデューサー兼コミュニティマネージャーをつとめています。

先日軽い気持ちでこんなツイートをしたら、そこそこ反響があったため、実際自分がSQL初心者からある程度一人で出したい数値は出せるようになるまでにこの2ヶ月どんなことをしたのかを書いてみようと思います。


※なお、理論や専門的な知識などを使ってかっこいいことを書く領域にはまだ達してないので、この記事では「実際に何をやったか」にフォーカスします。

2019年11月25日時点の自分のステータス

<環境>
・分析に必要なデータベースはすでにBigQueryと接続されている状態
(エンジニアがやってくれた)
(ので、クエリさえたたけばすぐに結果が出る状態)

<自分の状態>
・Progateで過去にPythonコースを修了したが、あんまり覚えていない
・既存のクエリの一部をいじって数値を出す、くらいはできた。
が、構造の仕組みを理解していないので、0から一人で書くことは不可能
・なんとなく「テーブルとは」「カラムとは」くらいはわかる。ただ説明しろと言われると難しい。
・新しく分析したい時は、こんな感じでいっつもエンジニアにお願いしていた。

スクリーンショット 2020-01-24 19.01.12


・語学は得意

SQL筋トレ初日:SELECT文の基本構文を覚える

Radiotalkチームのリードエンジニア兼執行役員、チャーリー(以下、師匠)に、「SQLでクエリをちゃんと0から書けるようになりたい」の旨を相談。
当時は「SELECTのとこに何入れればいいんだっけ」「GROUP BY意味わからん」という状態だったので、以下をあらためて教えてもらいました。

画像1

まず初日は、この構文をとにかく頭に定着させることに集中しました。
(これがわかっていないのは、英語で言う「SVOC」がわかっていない状態と同等)

定着させるにあたり、師匠から「筋トレ課題」を毎回もらって、それを毎日解くというルーチンをこなすことにしました。
筋トレ課題はいきなり難しい内容ではなく、まずは SELECT、FROM、WHERE だけ使えば結果が出るようなものです。

なので作業自体は簡単なのですが、これの繰り返しにより、自然と「どの数値を、どこのデータから、どういう条件で出すか」ということを常に意識するようになりました。

画像3

↑こんな感じで、課題をこなしたらそれの応用編の課題を出してくれる師匠。

SQL筋トレ4日目:0から記述できた独り立ち記念日

筋トレをしていると、段々と「どんな結果を出したくて、そのためにはどのテーブルのデータをどういう条件で出す必要があるのか?」ということを、自分で0から考えられるようになってきました。

以下が独り立ち記念日の様子です。

スクリーンショット 2020-01-24 19.25.29

毎度師匠に「この数値が出したいんだけどうまくいかなくて...」と声をかけまくっていた自分としては、このマークが出てきたときに

スクリーンショット 2020-01-27 9.58.05

「やっと自分で出せた!」という達成感でテンションがとても上がったことを覚えています。

SQL筋トレ開始から1週間後くらい:分析SQLとは、をあらためて学ぶ

簡単なクエリは記述できるようになってきたので、知識の応用をしていきたくなりました。
そんな中、当時別部署に所属していたエンジニアから、退職を機に身辺整理をするついでに...と以下の書籍を授かりました。
(「一番SQLの勉強頑張ってそうだから...」と言われたのを今でも糧にしています)

「そもそもデータってどういう構造になってるの?」「分析SQLとは?」みたいなところから丁寧に教えてくれる本で、ビジネスサイドも読みやすいように書かれているため大変わかりやすく、さらにSQLへの理解が加速しました。


SQL筋トレ開始から2週間後:INNER JOINやサブクエリなど応用系を学ぶ

基礎ができれば、今度は応用です。
データがどのように構成されているか、ということをある程度理解できれば、応用についても割と頭に入りやすくなってきます。
社内のつよつよなデータアナリストの方から教えていただいた以下の資料なども参考にしつつ、「これを使ってこういう数値を出してみよう」を繰り返し実践。


▼times(slackの分報)に悩みを書くと、ヒントをくれる師匠

画像6

こんな感じで、基礎→応用ができるようになりました。

SQL筋トレ開始から1か月半後:出したデータをGoogle データポータルに接続してダッシュボード化

ここ最近は、出したいデータを自分で出す→Google データポータルにつないでビジュアライズ&ダッシュボード化 というのをスムーズにできるようになってきました。

画像7

そうなると、例えば今まで何かがあるたびに都度出してもらっていたり、もしくは出していたりした数値を、「データポータルでダッシュボード化して、メンバーが誰でも見たいときに見たい数値が見られる」という状況にすることで、かなり効率的になりました。

また、重要KPIについて、「この数値ってなんであがったの?(下がったの?)」ということを調べたいときにも、あらかじめそのKPIに直結する数値を出すクエリを書いて、データポータルでダッシュボード化することで、毎度調べなくてもすぐに要因を特定できるようになりました。

(データポータルの活用については、また別の機会にnoteを書きたいと思います)

そんなわけで、私がこの2か月でやってきたことのまとめでした。
あらためて振り返ると、

・丁寧に教えてくれる師匠を始め、アドバイスをくれたり小さなことでも褒めてくれるエンジニアたちの存在(ここ一番大きい)
・基礎の反復、そして応用
・自社サービスのデータを使うことで楽しさ倍増

が成長の鍵だったと思います。
内容は正直かなり愚直なので、もっとかっこいい(?)方法を期待していた方はすみません。笑

「数値分析が苦手」
「KPIの設定が苦手」
「分析に毎度時間がかかっている」

このあたりに心当たりがある方は、ぜひチームのエンジニアに声をかけてみてください。


最後に:Radiotalkでは、一緒にサービスを大きくしてくれるメンバーを募集しています!


▼募集要項はこちら
https://radiotalk.jp/recruit

▼Radiotalkって何?という方はこちら
https://radiotalk.jp/

▼今回の筋トレに付き合ってくれたRadiotalkチームのエンジニアたち

師匠(リードエンジニア

兄弟子(Androidエンジニア)

▼Radiotalkチームの音声配信シリーズ

エンジニアの配信

デザイナー&プロデューサーの配信

ユーザー向け・運営の公式配信(iOSエンジニアと私でやっています)


この記事が気に入ったらサポートをしてみませんか?