事業会社のWebディレクターはSQLが書けるか否かで成果が変わる

IT系の話

事業会社のWebディレクター。これは制作会社のWebディレクターとは異なります。
事業会社のWebディレクターは自社に利益を生むビジネスモデルが既にあり、そのビジネスをWebで展開しているケースに生まれる職種です。

もう少し身近な例で話しますと、SUUMOやホームズなどネットで賃貸物件を探しますよね?あれを運営しているのは事業会社のWebディレクターです。

楽天市場や楽天銀行を運営している人も事業会社のWebディレクターです。皆さんがネットで利用するサービスを運営しているのは事業会社のWebディレクターです。

これを見ている人は事業会社のWebディレクターなので「言われなくても分かるよ」と察していますが念の為。

 

長々と前置きの話をしましたが、本日の話はSQL。事業会社のWebディレクターの皆さん。SQL書けますか?恐らく、多くの方は書けないんじゃないでしょうか。

ただ、書けるか否かで成果が大きく大きく異なります。SQLが書けるWebディレクターは頼りになります。仕事が速いです。何かあった時にも安心出来るWebディレクターだと見られます。良いことずくめなんですよね。

ということで事業会社のWebディレクターとSQLについてお話していこうと思っています。

そもそもSQL使わないんだけど…

SQL Tutorial - An Ultimate Guide for Beginners

甘い!!

Webディレクターは決まった範囲がないので
・管理型Webディレクター
・戦略系Webディレクター
・開発寄りWebディレクター
・制作寄りWebディレクター
など様々な範囲で活躍しています。

もしかしたら、「自分がやってる範囲ではSQL使わないんだけど」って考えている人もいらっしゃるでしょう。しかしながらどうでしょう。

使えないことを隠して強がっていませんか。私は様々な範囲で事業会社のWebディレクターをしましたが、どの範囲で仕事をしていてもSQLは必須でした。
・不具合発生時のデータ確認
・開発会社と話す際に深い話をする
・テスト管理時のデータ確認
・戦略を組むためのデータ集め
・AC、CVを伸ばすための施策の根拠集め
などどの領域を担当していてもデータは必須でした。むしろデータがないと話になりませんでした。

WebディレクターがSQLが不要なんてことはありません。ただ、ご安心下さい。多くの方はSQLを書けないのでできるだけで付加価値です。

SQLは開発会社に頼めばいいんじゃないの?

What is the real cost of outsourcing? | Training Journal

それはオススメしません。難しいデータ処理は頼むこともやもなしなこともありますが、出したいデータの8割は出せるようにしましょう。

開発会社さんに頼むことがどういうことか。それはお金がかかっているということです。事業会社は基本的に営業がお金を作るので、Webディレクターは売上や利益に対して意識が薄いです。なので、「良いじゃん」って思いがちです。しかし、それはNGです。売上や利益を忘れたWebディレクターは終わりの始まりです。

開発会社さんには多くのお金を支払っています。そのお金を無駄に使わないことは大事なことです。どんなWebディレクターでも出来る会社への貢献であり、実績です。

 

そしてもう1点。時間がかかる。
・SQLをちゃちゃっと作るWebディレクター
・「開発会社に頼むので待ってくださいませ」と言って1日以上かかるWebディレクター
どっちがいいか。前者ですよね。ビジネスはスピードです。素早く成果の出せるWebディレクターの方が優秀なのは自明です。そんな人には信頼も集まります。仕事もしやすくなります。さらに良い仕事が任されていきます。良いことずくめですね。

Webディレクターは「周りを上手く動かしていくことが大事。手を動かさないことも大事」だと考えがちですが、全然そんなことありません。むしろそんなWebディレクターはウザいだけです。勘違いWebディレクターです。自分が手を動かしたほうが良い場面なんて山程あります。その1つにSQLが書けることも含まれます。

SQLが書けるWebディレクターが得すること

How to Improve Your Restaurant Profit Margin This Year

・DBまで分かるため、深い知識があると認識され、信頼が集まる
・何かあった時の初動は雷鳴の如しなため、頼りになる
・戦略を考えつつデータの根拠も出せるため、より確かな戦略が練られる
・出来ない人が多いので、それだけで頼りになる
よって…昇進も早まり、より高い給与に繋がる。
よって…頼りにされ、幸福度が高まる。

 

また、転職時にも役立ちます。Webディレクターって範囲の分かりづらい仕事なので転職して必ずしも活躍するとは限りません。
「え?これ出来ないの?」
「その範囲が出来ても…意味ないんだよなぁ…」
こんな感じでミスマッチしていたWebディレクターは本当によく見ました。

しかし、SQLは超役に立ちます。
・転職活動でSQLが書けることが良い評価になった
・転職後もSQLが書けることでデータに基づく話が出来、早い段階で戦力になれた
・任されたサイトに対して早い段階で理解が出来る
これが私の実体験です。

そして、私の先輩もSQLを普通に書けます。
「転職して役に立ったスキルありました?」
と聞いたところ、「SQL書けたのはでかかったね」と仰っていました。これ本当です。
「戦略に近いポジションだから開発会社に直依頼できなくて、自分でデータ出して進めてた。周りは誰も出来ないのもあって、得しちゃったね」と自分も含めてSQLが書けることがこんなにも得になるとは思いませんでした。

 

SQLが書けずに損することは山の如しですが、SQLが書けて損することは0です。得しかありません。

そんなに難しくないのに、難しいと感じている人も多いので、書けるだけで得をしまくります。

最低限、Webディレクターが覚えておきたいSQLのスキル一覧

SQL JOIN, JOIN Syntax, JOIN Differences, 3 tables - with Examples - Dofactory

Webディレクターはプログラマーではないので、ゴリゴリ複雑なSQLを求められるわけではありません。そして、そんなところまで覚える必要もありません。

ただ、基本は抑えておきたいですね。事業会社のWebディレクターが使うSQLって決まってます。大体、いつも同じパターンです。なのでそこくらいは覚えておきましょう。

今回は初心者の方向け、未経験者向けなので超基本です。
仮にこんなデータがあると思ってお聞き下さい。

テーブル名:s_stock_list

stock_idsexagestart_datedel_flg
1132020/11/010
2122020/11/021
3222020/11/020
4132020/12/010

テーブル名:est_list

stock_idestimate_routeins_date
112020/12/01
312021/01/08
512021/01/08
1022021/01/29

 

超基本形

select stock_id
from s_stock_list

分かりますでしょうか。

selectの後にカラム名を指定する
fromの後にテーブル名を指定する

これで記載したカラムのデータが全て出てきます。

よくあるケースは事業会社だと各物件などクライアントが登録した各々のデータがあります。それらにはユニークなIDが振られています。それらを抽出する時に使います。

まずは適当なテーブル名を使ってその中のカラム名を1つ選択して書いてみて下さい。

超基本形+α

超基本形でデータを出すことは出来ますが、
・既に落ちているデータ
・出したくないデータ
など含めて全て出てきます。

それだとちょっと使いづらいですよね。多くは指定のデータを出したいはずです。
そんな時に使えるのが「Where」です。Whereがあれば何でも出来ます。こいつが超重要です。

既に落ちているデータは出さない
東京都のデータだけを出す
日付の範囲を指定してデータを出す
など何か条件をつけたい時は必ずWhereを使います。

select stock_id
from s_stock_list
where sex = 1

結果

stock_id
1
2
4

これが形です。カラム名に対して条件を記載することでそのルールに従ったstock_idが出されます。
例えば、sexは男女のデータを持っているとします。sexで男性と指定すればそのデータを持っているstock_idだけが出力されます。

ただ、条件が1つとは限らない。性別、年齢など複数条件をつけたいはず。そんな時は

select stock_id
from s_stock_list
where sex = 1
and age = 3

結果

stock_id
1
4

という感じでandをつければ条件を追加できます。andではなくorにすればどちらかに当てはまる場合になります。

大体は日時の指定がある

いつからいつまでのデータ
毎月のデータ
出しすぎてSQLが重くならないよう…
などデータの取得範囲を決めて出すことが多いです。

特に戦略系のことを考案するための根拠としてこういったデータは欠かせません。
毎月の営業向け報告資料に毎月の実績を出すのはよくある話

なので日時の指定が出来ることは必須のスキルです。

select stock_id
from s_stock_list
where start_date BETWEEN ‘2020/11/01’ AND ‘2020/11/02’

結果

stock_id
1
2
3

日時の指定方法は沢山あります。なので自分に合う方法を探してみて下さい。

複数のテーブルからデータを取りたい

テーブルの設計上、1テーブルに全てのデータが保存されていることはありません。各々のテーブルには目的があり、それに沿った設計がなされます。なので、出したいデータによっては複数のテーブルを結合して出力する必要があります。

<再掲>

テーブル名:s_stock_list

stock_idsexagestart_datedel_flg
1132020/11/010
2122020/11/021
3222020/11/020
4132020/12/010

テーブル名:est_list

stock_idestimate_routeins_date
112020/12/01
312021/01/08
512021/01/08
1022021/01/29

select s_stock_list.sex,
est_list.ins_date
from s_stock_list
left join est_list on s_stock_list.stock_id = est_list.stock_id

結果

sexins_date
12020/12/01
32021/01/08

left join XX on
これによりテーブルを結合させました。onの後に紐付けるためのキーになる情報を用います。
この場合、両テーブルにstock_idがあるのでstock_id同士をくっつけることで結合が可能となります。

なので両テーブルに同じ情報がない場合は結合は出来ません。AテーブルとBテーブルをどうしてもくっつけたい場合はAとBの両方のデータを持つCテーブルを探す必要があります。

そして、この結合ですが要注意です。left joinというのは一例であり、色々なくっつけ方があります。
場合によってどれを使うか変わるため、ここでは記載しません。色々あると理解して下さい。やりながら覚えるほうが早いです。

 

ここまで覚えれば大体のデータは出せます。まだまだやれることは沢山ありますが、ここまで出来れば多くのデータを自由自在に出せます。もし出せない場合はその都度調べるのが得です。その時には理解も深まっているはずです。

WebディレクターがSQLを書く時に必ずやること、準備すること

WebディレクターのSQLスキルなんてのはプロの人たちに比べたら飛び道具レベルです。付け焼き刃です。なので、書いたSQLが必ずしもあっているとは限りません。そして、
・そもそもテーブル情報知らないんですが
ってかたもいると思います。

そういった方々に向けていくつかアドバイスをさせてもらえればと思います。
①主要テーブルを開発会社さんや自社の分かっている人に聞く
②出力したデータは必ずチェックする
③最悪、結合とか出来ないならとりあえず各々出力してスプレッドシートなどでVlookupしてしまう
④read onlyの権限でおこなう
この4つは念頭に入れておいてもよいでしょう。

テーブルってのはめちゃめちゃあります。1つ1つ眺めても埒が明きません。なので分かっている人に聞くのが1番早いです。
・物件情報あるメインテーブルってどれですか。
・見積りデータのテーブルってどこですか。
・このマスターテーブルってどれですか。
など聞いて解決するのが1番です。

そして、出力したデータが正しいかの確認は必ずしましょう。意外?にも間違っていることが多いです(SQLは命令通り動きますが、書き方が間違っています)。
・select *などをしてデータを全量で出して、しっかりと条件がかかっているか
・ユーザー画面で確認できるデータを出して打ち込む
などしてデータの確認はしましょう。

また、いきなり全部完璧にやることが難しいのは分かりますので、あんまり無理はしないで下さい。
とりあえず、Whereで条件だけ絞っておいて出力しちゃいましょう。結合はせずにそれぞれで出力を行い、スプレッドシートなどでVlookupをしてデータを結合しても良いです。難しいときがあるのは分かりますので。

あと、Read onlyでやって下さいね。間違ってデータを消したら大事故ですので。

まとめ

いきなり出来るようにはならないので、ゆっくり確実に隙間時間を狙って勉強していきましょう。

コメント

タイトルとURLをコピーしました