Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【QuestHR】第5回データ分析リテラシー基礎研修 / 5Data Literacy

Avatar for QuestHR QuestHR
September 16, 2025

【QuestHR】第5回データ分析リテラシー基礎研修 / 5Data Literacy

ピボット的な集計表をSQLだけで作る。値フィルターに相当するHAVINGの勘所まで網羅する。

Avatar for QuestHR

QuestHR

September 16, 2025

More Decks by QuestHR

Other Decks in Business

Transcript

  1. 本日の アジェンダ 1. 前回の復習 2. なぜ集計が必要か? 3. 演習準備 4. 講義①:集計関数

    5. 講義②:グループ化 6. 講義③:集計結果の絞り込み 7. 総合演習 8. まとめ
  2. 前回の復習 前回は、複数のテーブルを繋ぐ「JOIN」を学びました! • INNER JOIN : 両方のテーブルに存在するデータだけを結合 • LEFT JOIN

    : 左のテーブルを基準に、全てのデータを結合 → これにより 「誰が、どんな評価を受けたか」という詳細なリス  トを作れるようになった!
  3. まずはグループ化する前に 列全体を計算する基本的な関数を覚えよう! • COUNT(列名) : データの件数を数える ◦ COUNT(*)と書くと、NULLを含む全ての行数を数える • SUM(列名)

    : 数値の合計を計算する • MAX(列名) : 数値の最大値を見つける • MIN(列名) : 数値の最小値を見つける • AVG(列名) : 数値の平均を計算する 列全体を一つの数値に要約する
  4. 1. FROM : 「部屋にいる全社員(employeesテーブル)」を対象にする。 2. GROUP BY : 「部署(department)ごとに集まってください!」とグループ分けをする。 (ステップ1)

    3. SELECT : 「各グループの部署名と、その人数(COUNT(*))を書いた名札を作ってくださ い」と命令し、NULLを含む全ての行数を数える。(ステップ2) GROUP BYの基本構文 SELECT department, COUNT(*) AS employee_count FROM employees GROUP BY department;
  5. HAVINGの基本構文 お題 : 「社員が2名以上いる部署」を調べる SELECT department, COUNT(*) AS employee_count FROM

    employees GROUP BY department HAVING COUNT(*) >= 2; -- 集計結果に対する条件 1. FROM : employeesテーブルから全てのデータを読み込む。 2. GROUP BY : department列の値でデータをグループに分ける。(ここで「営業部グルー プ」「開発部グループ」などが作られる) 3. HAVING : 各グループの名前(department)と、そのグループの行数(COUNT(*))を表示 する。 4. SELECT : 最終的に残ったグループについて、表示する列を決める。
  6. ▪できるようになったこと • 集計関数:COUNT, AVG, SUMで、データの要約ができる • GROUP BY:データをグループ化し、グループごとの集計ができる(ピ ボットの「行」) •

    HAVING:集計結果に対して、さらに条件を指定して絞り込める(ピボット の「フィルター」) • SQLでピボットテーブルのような集計表を作れるようになった! まとめ