hr员工数据分析项目实战
(数据已脱敏)
背景说明
某公司最近公司发生多起重要员工意外离职、部分员工工作缺乏积极性等问题,受hr部门委托,开展数据分析工作。
经与hr部门沟通,确定以下需求:
制定数据仪表盘实时监控人员变动情况(比如能预知员工离职节点),制作员工画像。
原始数据说明:
共两个sql数据,“hr数据”、“员工满意度及绩效考核数据”。其中hr数据中,转过岗的员工有转岗前和转岗后的两条数据;“员工满意度及绩效考核数据”中有测试数据ID为负,职务序列为管理的员工没有满意度数据。
项目实施:
1.数据获取&数据集制作
原始数据情况介绍:原始数据为两个sql文件,“员工绩效及满意度数据”、“hr数据”。而且根据业务方的介绍“员工绩效及满意度数据”中存在ID为负值的测试数据,“hr数据”中转过岗位(从其他岗位转管理的员工有两条记录。这里首先需要将数据导入mysql workbench对其进行清洗和转换。
基于数据介绍可知,需要对转过岗的人保留新岗位记录(删除转岗之前的数据),并新加一列标注每位员工是否转过岗
# 第一步 转过岗的人只保留新岗位记录
# MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令,
# 执行命令SET SQL_SAFE_UPDATES = 0
DELETE FROM `hr数据`
WHERE `ID` IN (
SELECT a.`ID`
from(
SELECT `ID`
FROM `hr数据`
GROUP BY `ID`
HAVING COUNT(`ID`) > 1
)AS a
) AND `职务序列` != '管理';
# 第二步 新加一列标注每位员工是否转过岗
SELECT
*,
CASE
WHEN `ID` IN (
SELECT`ID`
FROM`hr数据`
GROUP BY `ID`
HAVING COUNT(`ID`) > 1
) AND `职务序列` = '管理' THEN 1
ELSE 0
END AS `是否转岗过`
FROM `hr数据`
# 第三步 表格合并+只导出id为正值的数据
SELECT
a.*,
b.`员工满意度`,
b.`最后一次绩效评估`
FROM
`hr数据` AS a
LEFT JOIN `员工绩效及满意度数据` AS b
ON a.`ID` = b.`ID`
WHERE b.&#