人事・労務データ分析

中級

人事・労務データ分析

中級

人事・労務担当者の業務を題材に、部署別人員構成・給与分析・勤怠集計をSQLで解析します。実際の人事業務で使われるクエリパターンを体系的に習得できます。

178時間
0 / 17問完了0%

問題一覧

#155 部署一覧を取得する

初級SELECT基本ログインして解除

departmentsテーブルから全ての部署情報を取得してください。

#156 在籍中の従業員を取得する

初級WHERE句ログインして解除

employeesテーブルからis_activeが1の従業員の名前・役職・入社日を取得してください。

#157 部署名と従業員名を結合して取得する

中級JOINログインして解除

employeesとdepartmentsをJOINし、従業員名・部署名・役職を取得してください。

#158 部署ごとの従業員数を集計する

中級JOIN + 集計ログインして解除

employeesとdepartmentsをJOINし、部署名ごとの在籍中(is_active=1)の従業員数を多い順に取得してください。

#159 給与テーブルから基本給の平均を部署別に求める

中級JOIN + 集計ログインして解除

employees・departments・salariesを結合し、部署名ごとの基本給(base_salary)平均を高い順に取得してください。

#160 給与が全体平均以上の従業員を抽出する

中級サブクエリログインして解除

salariesテーブルでbase_salaryが全従業員の平均以上の従業員IDと基本給を取得してください。

#161 残業時間が最も多い従業員を特定する

中級GROUP BYログインして解除

attendanceテーブルでovertime_hoursの合計が最大の従業員IDと合計残業時間を1件取得してください。

#162 入社5年以上の従業員を抽出する

中級WHERE句ログインして解除

employeesテーブルからhire_dateが'2019-04-01'以前(5年以上前)の在籍中従業員の名前と入社日を、入社日の古い順に取得してください。

#163 従業員の年収(基本給+ボーナス)を計算する

中級SELECT基本ログインして解除

salariesテーブルでbase_salary * 12 + bonusを年収として計算し、従業員IDと年収を高い順に取得してください。

#164 残業ゼロの従業員を全員抽出する

初級WHERE句ログインして解除

attendanceテーブルからovertime_hoursが0.0の出勤記録がある従業員のIDを重複なく取得してください。

#165 部署ごとの給与合計と人数をまとめる

上級JOIN + 集計ログインして解除

3テーブル(departments・employees・salaries)を結合し、部署ごとの人数・給与合計・平均給与を給与合計の高い順に取得してください。

#166 給与ランキングをウィンドウ関数で求める

上級ウィンドウ関数ログインして解除

salariesテーブルでbase_salaryの降順にRANK()で順位を付け、従業員IDと給与とともに表示してください。

#167 部署内での給与順位をつける

上級ウィンドウ関数ログインして解除

salaries・employees・departmentsを結合し、部署内でのbase_salary降順のRANK()を付けてください。

#168 退職済み従業員の給与を確認する

中級LEFT JOINログインして解除

LEFT JOINを使い、is_activeが0の従業員(退職者)のid・名前・base_salaryを取得してください。

#169 従業員ごとの総残業時間をCTEで求める

上級CTE基本ログインして解除

CTEで従業員ごとのovertime_hours合計を求め、名前と一緒に残業の多い順に表示してください。

#170 年収上位3名を特定する

上級CTE基本ログインして解除

CTEで年収(base_salary * 12 + bonus)を計算し、年収上位3名の従業員名と年収を取得してください。

#171 部署別の平均給与と全社平均の差を求める

上級CTE基本ログインして解除

CTEで部署別平均給与と全社平均給与を求め、両者の差(dept_avg - company_avg)を小数第0位に四捨五入し、差の大きい順に部署名とともに表示してください。

QSQL Quest