Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
そして僕は令和で クエリを書いた 02 TeckUp ! LT 大会#2
Slide 2
Slide 2 text
自己紹介 名前:02 (大津 和槻) Twitter: @cocoeyes02 所属:株式会社ウィルゲート バックエンドエンジニア 趣味:ゲーム、カホン 特徴:カンファレンスジャンキー php 系カンファレンスのスタッフやってたりしま す
Slide 3
Slide 3 text
SQL を使って クエリを 書いたことはありますか?
Slide 4
Slide 4 text
SQL を使って 複雑なクエリを 書いたことはありますか?
Slide 5
Slide 5 text
02 は運用保守で複雑なクエリ を書くときがあります ( データ調査、KPI 自動算出...)
Slide 6
Slide 6 text
平成時代の02 は複雑なクエリ かけませんでした
Slide 7
Slide 7 text
令和時代の02 が複雑なクエリ を書くときに 意識したことをいくつか ピックアップしました
Slide 8
Slide 8 text
LT のゴール 複雑なクエリを書くときに 必要なことがある程度わかる
Slide 9
Slide 9 text
複雑なクエリを書くときに 必要なこと 1. ベン図を意識せよ 2. いきなり1 つの複雑なクエリを作らない 3. 句を書く順番を意識する
Slide 10
Slide 10 text
ベン図を意識せよ
Slide 11
Slide 11 text
ベン図?
Slide 12
Slide 12 text
ex. アクティブな男性ユーザのCV 数
Slide 13
Slide 13 text
いきなり1 つの複雑なクエリ を作らない
Slide 14
Slide 14 text
ex. 今年新規登録した アクティブな男性ユーザのCV 数
Slide 15
Slide 15 text
出てくる悩み CV 数をテーブル結合しても、1 件もヒットしてい ない!
Slide 16
Slide 16 text
出てくる悩み CV 数をテーブル結合しても、1 件もヒットしてい ない! 作成したけどなんかデータがおかしい!けどどこ で間違えているかクエリが複雑でわからない!
Slide 17
Slide 17 text
出てくる悩み CV 数をテーブル結合しても、1 件もヒットしてい ない! 作成したけどなんかデータがおかしい!けどどこ で間違えているかクエリが複雑でわからない! アクティブの定義が変わって変更しなきゃいけな いけど、クエリが複雑で動作確認ができない!
Slide 18
Slide 18 text
_人人人人人人人人人人人人人人_ >何の戦果も得られませんでした<  ̄Y^Y^Y^Y^Y^Y^Y^^Y^Y^Y^Y^  ̄
Slide 19
Slide 19 text
まずは1 つ1 つクエリを書きま しょう 今年新規登録をしたユーザを取得するクエリ 男性ユーザを取得するクエリ アクティブ情報を取得するクエリ CV 対象を取得するクエリ
Slide 20
Slide 20 text
まずは1 つ1 つクエリを書きま しょう 今年新規登録をしたユーザを取得するクエリ 男性ユーザを取得するクエリ アクティブ情報を取得するクエリ CV 対象を取得するクエリ それぞれのクエリが正しいかは、この段階で検証しま しょう
Slide 21
Slide 21 text
複数のクエリを合わせて、 1 つクエリを作る FROM 句や、JOIN と ON 句を使って結合していく 必要であれば、FROM 句、JOIN と ON 句、 WHERE 句でサブクエリも使う
Slide 22
Slide 22 text
句を書く順番を意識する
Slide 23
Slide 23 text
よーし、まずは SELECT 句から書いて…
Slide 24
Slide 24 text
よーし、まずは SELECT 句から書いて…
Slide 25
Slide 25 text
02 が書く句の順番 1. FROM 2. JOIN とON 3. WHERE 4. GROUP BY 5. HAVING 6. SELECT 7. DISTINCT 8. ORDER BY 9. LIMIT
Slide 26
Slide 26 text
SQL の評価順序 1. FROM 2. JOIN とON 3. WHERE 4. GROUP BY 5. HAVING 6. SELECT 7. DISTINCT 8. ORDER BY 9. LIMIT
Slide 27
Slide 27 text
なぜSQL の評価順序順? 先にテーブル関係(FROM ~ JOIN とON 句)を書 きたい 次に条件(WHERE ~ HAVING 句)を書きたい 整理(SELECT ~ LIMIT 句)は最後に書きたい
Slide 28
Slide 28 text
なぜSQL の評価順序順? 先にテーブル関係(FROM ~ JOIN とON 句)を書 きたい 次に条件(WHERE ~ HAVING 句)を書きたい 整理(SELECT ~ LIMIT 句)は最後に書きたい 「ベン図を意識する」 「複数のクエリを合わせて、1 つクエリを作る」 を意識するならば、先にテーブル関係や条件を書きた いからこの順番で書いています
Slide 29
Slide 29 text
最後に ここまで色々言いましたが、複雑なクエリは書か ないに越したことはないです アプリケーションのクエリであれば、特にそう やるなよ!絶対やるなよ! できるならばテーブル設計を見直すなどして、簡 単なクエリデータを取得的るようにしましょう