Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【QuestHR】第4回データ分析リテラシー基礎研修 / 4Data Literacy
Search
QuestHR
September 16, 2025
Business
58
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【QuestHR】第4回データ分析リテラシー基礎研修 / 4Data Literacy
テーブルをつなげて“見える世界”を広げる。実務で迷わないJOIN設計を学ぶ。
QuestHR
September 16, 2025
More Decks by QuestHR
See All by QuestHR
QuestHR_第1回データ分析リテラシー基礎研修 / 1Data Literacy
kquesthr
0
84
【QuestHR】第2回データ分析リテラシー基礎研修 / 2Data Literacy
kquesthr
0
66
【QuestHR】第3回データ分析リテラシー基礎研修 / 3Data Literacy
kquesthr
0
62
【QuestHR】第5回データ分析リテラシー基礎研修 / 5Data Literacy
kquesthr
0
52
【QuestHR】第6回データ分析リテラシー基礎研修 / 6Data Literacy
kquesthr
0
51
Other Decks in Business
See All in Business
オープンワーク会社紹介資料 / company profile
openwork
4
610k
malna-recruiting-pitch
malna
1
28k
丸石グループ会社紹介
maruishi
0
290
Hubble Company Deck
hubbleinc
0
250
株式会社デライト 会社紹介資料
ikmwatanabe
0
160
シナジーマーケティング株式会社 採用ピッチ資料
synergymarketing
1
68k
(スライド版) 全社AI推進プロジェクト開始から半年で 組織に起きた5つの変化 〜kubellのkube-AIで見えた成果と課題〜 / ai-project-progress
takeshisumida_
1
240
2026.10_中途採用資料.pdf
superstudio
PRO
5
120k
株式会社レボルト採用deck
takemura_yuto
0
550
Podpora KOVY | 24. 9. 2026
ggfs
PRO
0
430
株式会社kanaL|会社紹介資料(Company Deck 2026)
tamagakiyuya
0
160
AI活用の舞台装置が、自走を促す
tbpgr
0
250
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to make the Groovebox
asonas
2
2.5k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
We Have a Design System, Now What?
morganepeng
55
8.4k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Become a Pro
speakerdeck
PRO
31
6.3k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Marketing to machines
jonoalderson
1
5.9k
Transcript
情報の融合 第4回 QuestHR株式会社 データ分析リテラシー 基礎研修 JOINがもたらす新たな視点
本日の学習目標 1. なぜテーブルを結合(JOIN)する必要があるのかを理解する。 2. INNER JOINを使い、2つのテーブルに共通するデータを取得でき るようになる。 3. LEFT JOINを使い、片方のテーブルを軸にデータを取得できるよ
うになる。
本日の アジェンダ 1. 前回の復習 2. なぜJOINが必要か? 3. 演習準備 4. JOINの基本構文
5. 講義①:INNER JOIN と LEFT JOINについて 6. 講義②:【便利ワザ】テーブルにニックネームを付ける 7. 【重要】SQLの処理順序 8. 講義③:【応用】3つ以上のテーブルを結合する 9. 総合演習 10. まとめ
前回の復習 前回は、「データ整備」を学びました! • NULL : 空のデータをIS NULLで探せるようになった • CASE :
条件に応じて「在職」「退職」などの新しい分類を作れ るようになった • 関数 : TRIMでスペースを消したり、DATEDIFFで日付を計 算したりできるようになった
なぜJOINが必要か?
「社員ごとの、昨年度の評価ランクを知りたい! しかし、データは2つのテーブルに分かれています… 」 なぜJOINが必要か?
演習準備
JOINの基本構文
• FROM テーブルA JOIN テーブルB ◦ どのテーブルと、どのテーブルを結合するかを指定。 • ON テーブルA.キー
= テーブルB.キー ◦ 【※最重要※】どの列をキーにして結合するかを指定。 ◦ 今回は、ON employees.employee_id = evaluations.employee_id となる。 JOINの基本構文 SELECT * FROM テーブルA JOIN テーブルB ON テーブルA.キー = テーブルB.キー;
講義① INNER JOIN と LEFT JOINについて INNER JOINについて
▪INNER JOIN : 両方のテーブルにキーが存在 するデータだけを結合する。 • employeesテーブルにも、evaluationsテーブルにも、両方に employee_idが存在する社員(山田、鈴木、佐藤、高橋)だけが 表示される。 •
評価データがない田中さん(ID=5)は結果に 含まれない。 INNER JOINについて
ハンズオン① INNER JOINを書いてみよう!
お題 employeesテーブルとevaluationsテーブル をINNER JOINして、評価スコア付き社員一覧 を作成しましょう! INNER JOINを書いてみよう!
講義① INNER JOIN と LEFT JOINについて INNER JOINの課題
「あれ? 田中さんはどこへ?」 INNER JOINでは 結合相手がいないデータは結果から消えてしまう。 「評価がない新入社員も含めて、とにかく社員は全員表示したい!」 INNER JOINの課題
講義① INNER JOIN と LEFT JOINについて LEFT JOINについて
▪LEFT JOIN : テーブルAのすべての行を取得し テーブルBに一致する行があれば それも一緒に取得する • 左側のemployeesテーブルは全員(5名)表示される。 • 右側のevaluationsにデータがない田中さんの評価ランクは
NULL(空)になる。 LEFT JOINについて
ハンズオン② LEFT JOINを書いてみよう!
お題 employeesテーブルを左側にして LEFT JOINを使い、評価データがない 田中さんを含む全社員の一覧を 作成してみましょう! LEFT JOINを書いてみよう!
講義① INNER JOIN と LEFT JOINについて INNERとLEFTの使い分け
▪INNER JOINを使う時 • 「〇〇を持つ人だけを分析したい」 例:「評価データを持つ社員だけ」「売上実績のある顧客だけ」 ▪LEFT JOINを使う時 • 「全員を対象に、〇〇の有無を確認したい」 例:「全社員を対象に、評価の有無を確認」「全顧客を対象に、購入履歴の有
無を確認」 ※基本は、LEFT JOINが安全、と覚えておくのも一つの手。 INNER JOIN と LEFT JOINの使い分け
講義② 【便利ワザ】テーブルにニックネームを付ける
▪ニックネームの付け方 FROM句やJOIN句で、テーブル名の後ろにスペースを空けてニッ クネームを書くだけ! 【便利ワザ】テーブルにニックネームを付ける FROM employees e LEFT JOIN evaluations
ev ※ニックネームを付けると… • 修正前: ON employees.employee_id = evaluations.employee_id • 修正後: ON e.employee_id = ev.employee_id → SQL文が短く、スッキリして読みやすくなる!
【重要】SQLの処理順序
結論 人間が『書く順番』とコンピューターの 『処理する順番』が違うため! なぜSELECT句でニックネームが使えるのか?
▪私たちが書く順番 1. SELECT (何を見るか) 2. FROM / JOIN (どのテーブルから) 3.
WHERE (どの行に絞るか) SQLの処理順序 ▪コンピューターが処理する順番 1. FROM / JOIN (まず材料を確認し、ニックネームを覚える) 2. WHERE (材料を絞り込む) 3. SELECT (最後に、どう見せるかを決める) → FROMでニックネームを覚えてからSELECTを処理するので、問題なく使えるのです。
▪正しいSQL文の例 SELECT employee_name AS emp_n ← 表示する時の名前は emp_n にする FROM
employees WHERE employee_name = '山田 太郎'; ← 絞り込む時は、元の列名 employee_name を使う SQLの処理順序 ▪エラーが起こるSQL文の例 SELECT employee_name AS emp_n FROM employees WHERE emp_n = '山田 太郎';
講義③ 【応用】3つ以上のテーブルを結合する
JOINは、数珠つなぎのように繋げていくことができる! 例:社員情報 + 評価情報 + 研修履歴 【応用】3つ以上のテーブルを結合する SELECT * FROM
employees e -- ASを使わなくても、スペースで別名を付けられる LEFT JOIN evaluations ev ON e.employee_id = ev.employee_id LEFT JOIN training_history th ON e.employee_id = th.employee_id; ポイント 先ほど学んだニックネーム(e, ev, th)を使うと、ON句が非常に読みやすくなる!
総合演習
お題 「営業部」の社員に絞ってから 評価データをLEFT JOINし 評価ランク(evaluation_rank)が 'A'の社員だけを表示してください! これまでの知識を総動員!
ヒント 先に、WHEREで絞り込んでから JOINするのではなく JOINした結果全体に対して WHEREで条件を指定します。 これまでの知識を総動員!
実行結果の確認
まとめ
▪できるようになったこと • JOIN:複数のテーブルを、キーを使って結合できる • INNER JOIN:両方のテーブルに存在するデータだけを結合できる • LEFT JOIN:左のテーブルを基準に、すべてのデータを結合できる まとめ
次回予告
第5回 データの集計とグループ化