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】第3回データ分析リテラシー基礎研修 / 3Data Literacy
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
QuestHR
September 16, 2025
Business
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【QuestHR】第3回データ分析リテラシー基礎研修 / 3Data Literacy
欠損・表記ゆれ・計算不可…“現実のデータ”を分析できる形に整える。
NULL/CASE/日付関数を使って、下ごしらえ力を鍛える。
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】第4回データ分析リテラシー基礎研修 / 4Data Literacy
kquesthr
0
58
【QuestHR】第5回データ分析リテラシー基礎研修 / 5Data Literacy
kquesthr
0
52
【QuestHR】第6回データ分析リテラシー基礎研修 / 6Data Literacy
kquesthr
0
51
Other Decks in Business
See All in Business
営業が見てきた"AI導入ガバナンス"のリアル — あなたの会社は今どのステージ?
kuraryu0128
0
180
Crisp Code inc.|わたしたちの事例 / 実績 - Works
so_kotani
0
2.4k
Dopagaki Driven Design
pokotyamu
0
190
I Ran 30+ GEO Experiments So You Don't Have To: What 200M AI Citations Say Actually Works
thomaspeham
1
150
(スライド版) 全社AI推進プロジェクト開始から半年で 組織に起きた5つの変化 〜kubellのkube-AIで見えた成果と課題〜 / ai-project-progress
takeshisumida_
1
240
【株式会社カオナビ】会社紹介資料 for engineer / kaonavi/introduction-for-engineer
kaonavi
3
62k
Trend Cloud OneからTrendAI Vision Oneへの切替 - 事前に押さえたい疑問とつまずきやすいポイント
todatomohiro
0
230
データ問い合わせエージェントと 求人推薦システムから見る、 当社のデータ活用事例
kazuyama88
0
220
エムスリーキャリア Work Support採用資料 / M3C Work Support
m3c
1
15k
【DearOne】Dear Newest Member
hrm
3
20k
ビーヘルシー採用
behealthy
0
270
2026.10_中途採用資料.pdf
superstudio
PRO
5
120k
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
1
260
Faster Mobile Websites
deanohume
310
32k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
ラッコキーワード サービス紹介資料
rakko
1
5.4M
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
How STYLIGHT went responsive
nonsquared
100
6.3k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Leo the Paperboy
mayatellez
10
2.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Transcript
SQLによるデータクレンジングと加工 第3回 QuestHR株式会社 データ分析リテラシー 基礎研修 データを使いやすく整える技術
本日の学習目標 1. NULL(空のデータ)を正しく扱うことができるようになる。 2. CASE文を使い、条件に応じてデータを分類できるようになる。 3. 便利な関数を使い、勤続年数などを計算できるようになる。
本日の アジェンダ 1. 前回の復習 2. なぜデータ整備が必要か? 3. 演習準備 4. 講義①:空のデータNULLの扱い方
5. 講義②:条件分岐CASE文の使い方 6. 講義③:便利な関数(文字列・日付) 7. 総合演習 8. まとめ
前回の復習 • WHERE : 条件を指定してデータを絞り込む • AND / OR :
複数の条件を組み合わせる • LIKE : あいまいな条件で探す • IN : 複数の中から選択 • ORDER BY : 結果を並べ替える • DISTINCT : 重複をなくす • LIMIT : 件数を絞る
なぜデータ整備が必要か?
現実のデータは、必ずしも綺麗だとは限らない。 • 入力漏れ(空のデータ)がある • 表記がバラバラ(大文字・小文字、不要なスペース) • そのままでは計算できない (例:入社日から勤続年数を計算したい) → 分析の前に、データを使いやすい形に「整える」作
業が不可欠となる! なぜデータ整備が必要か?
演習準備
講義① 空のデータNULLの扱い方
データが入っていない「空の状態」を表す特別な値 数値の「0」は値を持ち 空文字列(例: "")は、長さ0の文字列として存在する。 一方、「NULL」は何も存在しない状態を示し 値や文字列すら持たない。 NULLとは?
• WHERE resignation_date IS NULL (退職日が空のデータ → 在職者) • WHERE
resignation_date IS NOT NULL (退職日が空ではないデータ → 退職者) = NULL では探せない! 上記のように、IS NULL または IS NOT NULL を使う。 NULLを探すには?
ハンズオン① NULLでSQL文を書いてみよう!
お題 employeesテーブルから 退職済みの社員 (resignation_dateがNULLではない) を抽出してみましょう! NULLでSQL文を書いてみよう!
NULLを別の値に置き換えたい場合は COALESCE(値1, 値2) を使う! 「もし値1がNULLだったら、代わりに値2を表示して」 という意味の関数 例:退職日がNULLなら、代わりに「在職中」と表示する 【応用】NULLの扱い方 SELECT employee_name,
COALESCE(CAST(resignation_date AS TEXT), '在職中') AS status FROM employees; ※CASTはデータ型を変換する命令
講義② 条件分岐CASE文の使い方
CASE文は、分岐処理ができる! 「もし〇〇ならA、そうでなければB」 とIF文のように、条件に応じて表示する内容を自由に設定できる! 例:退職日が空欄(NULL)なら「在職」、そうでなければ「退職」と表示したい 条件によって表示を変えたい!
CASE文の基本構文 • WHEN 条件 THEN 結果 : 「もし条件に合ったら、この結果を表示」 • ELSE
結果 : 「どの条件にも合わなかったら、この結果を表示」 • END : CASE文の終わり • AS 列名 : 新しい列の名前を指定 SELECT employee_name, CASE WHEN resignation_date IS NULL THEN '在職' ELSE '退職' END AS status FROM employees;
ハンズオン② CASE文を書いてみよう!
お題 employeesテーブルで 部署が「営業部」なら「フロント」 「それ以外」なら「バックオフィス」と表示する division列を新しく作ってみましょう! CASE文を書いてみよう!
講義③ 便利な関数(文字列・日付)
▪文字列を整える関数 • TRIM(文字列) : 文字列の前後の不要なスペースを削除する。 • UPPER(文字列) : すべて大文字に変換する。 ▪日付を扱う関数
• CURDATE() : 今日の日付を取得する。 • DATEDIFF(日付1, 日付2) : 2つの日付の差(日数)を計算する。 ※日付関数は、データベースの種類によって書き方が少し異なります。 まだまだある!便利な「下ごしらえ」関数
「今日までの勤続年数」を計算するには? 1. DATEDIFFで、今日と入社日の差(日数)を求める。 2. 求めた日数を365で割って、年数に変換する。 【応用】勤続年数の計算 SELECT employee_name, hire_date, DATEDIFF(CURDATE(),
hire_date) / 365 AS years_of_service FROM employees;
ハンズオン③ 関数を書いてみよう!
お題 employeesテーブルのposition列にある、前後 のスペースを削除してみましょう! 関数を書いてみよう!
総合演習
お題 全社員について 「在職者」か「退職者」かを示すstatus列と 「勤続年数」を示すyears_of_service列を 追加して表示しましょう! これまでの知識を総動員!
実行結果の確認
まとめ
▪できるようになったこと • NULLの扱い:データ整備における「欠損値(入力漏れ)の処理」 • CASE :データ整備における「データの加工・変換」 • 関数(TRIMやDATEDIFF):文字列を整えたり、日付を計算したりでき る。
まとめ
次回予告
第4回 情報の融合 JOINがもたらす新たな視点