如何计算离职率(1)?

离职率是一个公司HR部门特别关注的指标,离职率的高低能反映出企业对人才的吸引和保留能力。那么,如果计算离职率呢?

在下面这个表中,当某个员工信息行对应的End Date列中值不为空时,表明该员工已经离职,基于这一特点就可以获得当前离职员工的人数。

在这里插入图片描述

Separated Employees =
CALCULATE (
    COUNT ( HRdata[Employee Id] ),
    NOT (
        ISBLANK ( HRdata[End Date] )
    )
)

不过,用这个公式计算出来的离职人数并不正确,

在这里插入图片描述

按照HRDate中的记录,2018年一共有3名员工离职,但当前这个公式计算出的员工离职人数是1,不符合实际情况。

那么,为什么会出现这样的问题呢?原因请参考下一篇blog。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设有一张名为employee的表,其中有以下字段:id, name, province, leave_date。 先根据离职时间查出在起始年月到结束年月区间的离职人员: ``` SELECT * FROM employee WHERE leave_date BETWEEN '起始年月' AND '结束年月' ``` 筛选出省份包含上海、广州、深圳的离职员工: ``` SELECT * FROM employee WHERE leave_date BETWEEN '起始年月' AND '结束年月' AND province IN ('上海', '广州', '深圳') ``` 利用lambda表达式查询出每个省份每个月的离职: ```java List<Employee> employees = ...; // 假设为查询结果集 // 以省份和月份为键,统计离职次数 Map<String, Map<String, Integer>> leaveCounts = employees.stream() .collect(Collectors.groupingBy(Employee::getProvince, Collectors.groupingBy(emp -> emp.getLeaveDate().substring(0, 7), Collectors.summingInt(emp -> 1)))); // 以省份和月份为键,统计总人数 Map<String, Map<String, Integer>> totalCounts = employees.stream() .collect(Collectors.groupingBy(Employee::getProvince, Collectors.groupingBy(emp -> emp.getLeaveDate().substring(0, 7), Collectors.summingInt(emp -> 1)))); // 计算每个省份每个月的离职 Map<String, Map<String, Double>> leaveRates = new HashMap<>(); for (String province : leaveCounts.keySet()) { Map<String, Integer> provinceLeaveCounts = leaveCounts.get(province); Map<String, Integer> provinceTotalCounts = totalCounts.get(province); for (String month : provinceTotalCounts.keySet()) { double rate = provinceLeaveCounts.getOrDefault(month, 0) / (double) provinceTotalCounts.get(month); leaveRates.computeIfAbsent(province, k -> new HashMap<>()).put(month, rate); } } ``` 其中Employee类的定义为: ```java public class Employee { private int id; private String name; private String province; private String leaveDate; // 省略构造方法、getter和setter } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值