SQL

【初心者向け】SQLっていつどんなときに使うの?

Hawaii
こんにちは、Hawaiiです。本日はタイトル通り、SQLはいつどんな場面で使うことが多いのか、自分を例に解説していきます。

 

なんでこの内容を記事にしようと思ったかというと、SQLって重要なわりにクローズアップされることが少ないので初心者にとってはすごくイメージしづらいと思います。

 

実際、私は転職活動をしていて内定後の面談のときに、初めてSQLという言葉を知りました。(偉そうに言えたことではないです) それくらい、会社や部署によってはSQLって縁遠い存在だと思います
Hawaii

 

ですので、今日は私の普段の業務の中でどんな場面でSQLが必要になるのか、紹介していきます。

 

本記事の目次は以下の通りです。

 

本日紹介する内容は実際の私の日常を例にしているので、「業界・職種・企業・部署・案件」によって当然状況は異なります。

あくまで全体の中の一例としてお読みいただくようにお願いします

 

 

1.私の自己紹介

 

前職は全くの異業種(人材マネジメント)で7年働いていましたが、あるプロジェクトへのアサインをきっかけに統計・プログラミング・機械学習を勉強し、AI分野への可能性を感じました

 

そして2020年4月からビジネス寄りのデータサイエンティスト(AIコンサルタント)に転職したので、転職してちょうど7か月が経過したところです

 

Hawaii
「統計・プログラミング・機械学習を勉強した」とは書いていますが、当時のプロジェクトを成功させるのに必要な箇所だけ勉強していたので、それまでは「SQL」という単語すら知らない状態でした

 

2.SQLとは

企業は、大抵自社のデータ(購買データやユーザのデータ)を「専用のデータサーバ」に保管しています。

この「専用のデータサーバ」から、分析したいデータを取ってきたり、加工するために必要なのが「SQL」という技術です。

 

イメージ的には、PythonやRとは別に、SQLというプログラミング言語があるんだなと思っていただければ大丈夫です(厳密には違いますが)。

 

Hawaii
なので、Pythonとかももちろん大切なんですが、それ以前にSQLを知らないと、Pythonで分析するためのデータを手元に持ってこれないんです。

 

この意味でも、SQLは使えないといけないということが伝わると思います。

3.SQL、こんなときに使います

 

(1)エンジニアの場合

この内容は、少し難しいと思われる方は飛ばしていただいて大丈夫です。

 

エンジニアの方は、わざわざ説明するまでもないかもしれないですが、一応紹介します。

すごくシンプルな例で言うと、データの集計を頼まれたときです。

 

このサイトでの売上金額の平均を日別に知りたいんだよね

 

たとえばこんな相談があったとき、「このサイトに関する」データは、冒頭にお伝えした「専用サーバ」に保管されています。

 

すごく適当ですが、以下のようなイメージです。(仮に、このデータを「sales」という名前とします)

顧客ID 日付 購入金額 購入商品
11111 2020/11/1 20,000 Tシャツ
11111 2020/11/2 35,000 パーカー
22222 2020/11/1 24,000
33333 2020/11/2 18,000 ズボン
   ~何万,何百万行のデータ~

 

このデータを集計するために、以下のようなクエリを書きます。

 

 command
SELECT AVG("購入金額")
FROM sales
GROUP BY "日付";

 

こうすると、日付別の購入金額の平均が表示されるので、その内容をお客さんに報告する・・というイメージです。

 

Hawaii
もちろん、こんなシンプルなデータの集計だけではないので業務内容は非常に多岐にわたりますが、SQLのイメージを本当に少しだけつかんでいただけたら嬉しいです。

 

(2)ビジネス寄りのデータサイエンティストの場合←私がこれ

(1)のエンジニアの方の場合は、「SQLは使わないといけないんだろうな」と想像がつきやすいと思います。

 

一方で、いわゆるビジネス寄りのデータサイエンティストがなぜSQLを使える必要があるのか、イメージがつかない人も非常に多いと思います

 

え、だってビジネス寄りのデータサイエンティストってお客さんとエンジニアをつなぐ存在だから、データ集計とか加工は全部エンジニアの人にやってもらえばいいんじゃないの?

 

おそらく、こう思う人って結構多いと思います。

 

なので、少しでもイメージがつけやすいように、普段私がどういう場面で「SQLを必要としているか」、紹介していきます。

 

ケース1:エンジニアの方に依頼するとき

さきほどのエンジニアの方の例はシンプルすぎたのですが、現実はもう少し複雑なデータ集計の依頼をお客さんからいただくことが多いです。

 

そういうとき、依頼はお客さんからエンジニアの方に直接行くのではなく、PM(プロジェクトマネージャー)をしている私に先に連絡をいただきます

 

そして、実際の集計はエンジニアの方にしていただくことも多い(私がやる場合もあります)ので、そのときは当然私からエンジニアの方に説明する必要があります

 

Hawaii
この説明のときに、どういうクエリ(SQLで書くコードのこと)を書けばよさそうか、ざっくり頭の中で思い浮かべながらエンジニアの方に説明をします

 

これは、考えてみれば当然なんです。自分ができないことを誰かに依頼しようとすると、説明が漠然としたり曖昧になってきちんとエンジニアの方に伝わらないことが多いです

 

「任せること」と「丸投げ」は全くの別物なので、ある程度自分でも実装方法を想像しながらエンジニアの方に依頼をする必要があると、転職して7か月たって実感しています。
Hawaii

 

※偉そうに書いていますが、最初は上司に頼りっきりでした。

 

ケース2:自分で集計するとき

これはもうそのままなんですが、「自分で集計するときがどんなとき」か、紹介していきます。

 

■小規模でスポット的な集計業務の場合

簡単に言うと、わざわざエンジニアの方に依頼するまでもない、比較的小規模でスポット的な(今回1回限りしかない)業務の場合、

 

アサインできるメンバーがいないので、自分でやる場合が多いです。

 

■急ぎの集計業務の場合

わりとあるあるなのは

 

ごめんなさい・・明日中か・・できれば今日簡単でいいので集計してほしい

 

とお客さんから頼まれるケースです。

 

Hawaii
こういうときは時間がないのでわざわざ説明する時間もないし手が空いているメンバーもいない・・という状況が多いので、自分でぱぱっと集計することも比較的発生します。

まとめ

今回はだいぶわかりやすい2つの例を出しましたが、実際はもっと色んなケースがあります。

 

今回の記事では、「あ、たしかにエンジニアの方以外でも、SQLって必要なんだな」ということが伝わりましたら嬉しいです。

 

4.まとめ

いかがでしたでしょうか。

 

データサイエンティスト、データ分析職、エンジニアの方にとって「SQLが使えない」って、まあまあ致命的(というか仕事にならない)なんだと理解いただけたのではないでしょうか

 

Hawaii
転職の際に「SQLを使ったことがある」ことが歓迎条件もしくは必須条件になっている求人もわりとあるので、転職を検討されている方は、気になる企業の求人を是非チェックしてみてください。

 

以下の関連記事でSQLの勉強法をまとめていますので、SQLを勉強してみたいという方は、是非こちらもご覧ください

 

最後までお読みいただきありがとうございました。

 

 

未経験からデータサイエンティストに転職するためのロードマップ販売中

未経験からデータサイエンティストに転職した私のノウハウを凝縮したロードマップをnoteで販売中です(1,280円)。

巷にあふれる「勉強法」だけでなく、「勉強した内容をどのように実務で実践し」「転職ではどのような点が評価されたのか」といった入手困難な情報を、「私のリアルな実体験」としてお届けしています。

わずか4日間で60名超の方に購入頂きました!

ロードマップの無料部分を見てみる

-SQL

© 2021 データサイエンス はじめの一歩 Powered by AFFINGER5