我需要通过一次ES查询, 完成如下场景:
统计一个公司下各个部门的人数分布, 并需要统计各个部门的1月份在职人数, 入职, 离职人数, 以及公司总共的在职, 入职, 离职人数
具体条件如下(做了简化处理)
- 查询出的人员需要为指定公司 id 的人员(条件中的
c_company_id
表示) - 部门统计需要统计值为空的人数(脚本的
"missing": "未填写"
表示) - 员工只存储了入/离日期字段
- 月初在职人数(
employed_origin
表示)- 对于
c_status
字段在[1, 2]
区间内(非离职人员), 并且入职日期小于2020-01-01
, 该员工计入在职人数 - 对于
c_status
为3
的员工(离职人员), 如果他的离职日期大于2020-01-01
并且入职日期小于2020-02-01
, 那么该员工计入在职员工
- 对于
- 入职人数(
hire
表示)- 入职日期介于
2020-01-01
和2020-02-01
之间的人数
- 入职日期介于
- 离职人数(
leave
表示)c_status
为3
并且离职日期介于2020-01-01
和2020-02-01
之间的人数
- 月末在职人数(这才是真正需要的在职人数的值)
- 月初在职人数 + 入职人数 - 离职人数
- 最后几个
sum_bucket