Creamlittlemoon 2021-09-29 10:57 采纳率: 100%
浏览 65
已结题

Python/SQL计算本月离职率

目前是在BI上做多个列的动态计算实现的, 但觉得实现方式有点复杂, 而且排序和动态计算某些设置会影响到最终结果显示, 所以想咨询一下各位有没有更好的实现途径~
(平时工作用SQL做数仓模型; Python学过一些, 但尚未在实际工作中使用)

问题明细
离职率公式 = (本月离职人数)/[(本月1号在职总人数+手动选取的本月另一天的在职总人数)/2]

数据集的关键字段

  1. 入职日期 HIRE_DATE: 如 2021-08-02
  2. 离职日期 LAST_DAY: 如 2021-09-14

假设"手动选取的本月另一天" 为 a

  1. a = 2021-09-28
  2. b = a_ym = 2021-09 (取年月)

两层判断

  1. 判断日期 = a 时, 是否在职
    LAST_DAY < = a
    OR
    LAST_DAY IS NULL

  2. 判断是否当月离职的逻辑
    LAST_DAY_yearmonth = b

当前思路
根据上述逻辑, 判断每行是否计入在职/离职, 计入记为1, 不计入记为0 --> 用BI的动态计算runningsum统计所有在职/离职总量 --> 用BI的动态计算movingmax得到在职/离职总量

img

欢迎各位进行逻辑优化或提供可行方式的建议 感恩

  • 写回答

1条回答 默认 最新

  • CSDN专家-HGJ 2021-09-29 12:58
    关注

    是想用 python实现吗?如果用python的话,思路是:用pandas,读取为dataframe,然后取出相关列进行判断,将0或1的结果写入相关列即可。
    如对你有启发和帮助,请点击我回答的右上方采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 9月29日

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退