zoukankan      html  css  js  c++  java
  • 练习 |委托方在每个月重复委案率

    • 数据:

    案件清单表(vi_cs_rpt_cse_dtl)是汇总了每个甲方案件的一些案件信息——按照委托方、合同号、批次号、委案开始日期这4要素为唯一标示。
    包含的主要字段(委托方、合同号、批次号、委案开始日期、委案金额、委案结束日期,导案操作时间)

    • 题目:

    若本月甲方给到案件导入系统之后,对于同个委托方,若本月导入系统的案件的合同号在之前月份导入过,即在系统中能够查到该合同号在之前月份出现过,则认为该案件重复委案【案件清单表的历史数据是从2018年1月1日开始截止今日】

    • 求解:

    每个委托方在每个月重复委案率?【重复委案率=本月重复委案的次数/本月导入案件数】

    • >>思路:

    1、数据筛选

      筛选出需要用到的有效字段,这里是委托人、合同号、导案操作时间 即可

    2、排序

      利用row_number() over() 标出同一委托人的合同号在不同月份是第几次导入,标非1的就是和历史月份重复导入了 

    3、 计算每月各委托人下面的重复导入合同数和总导入合同数

    4、计算每月各委托人下的重复委案率

    • >>脚本:
    --stp1 计算月份对应的重复导入合同数
    
    select 导入月份
    ,委托方
    ,count(distinct case when row_num <>1 then 合同号 end) as '重复导入合同数'
    into #A
    
    from (
    select *
    ,row_number()over(partition by 委托方,合同号 order by 导入月份 asc) as row_num
    from (
    select 委托方
    ,合同号
    ,date_format(导案操作时间,'%y-%m') as '导入月份'
    from vi_cs_rpt_cse_dtl
    group by 委托方
    ,合同号
    ,date_format(导案操作时间,'%y-%m') 
    ) a1
    ) a2
    group by 导入月份
    ,委托方
    
     
    
    --stp2 计算月份对应的总导入合同数
    select 导入月份
    ,委托方
    ,count(distinct 合同号) as '导入合同数'
    into #B
    from (
    select 委托方
    ,合同号
    ,date_format(导案操作时间,'%y-%m') as '导入月份'
    from vi_cs_rpt_cse_dtl
    group by 委托方
    ,合同号
    ,date_format(导案操作时间,'%y-%m') 
    ) b1
    group by 导入月份
    ,委托方
    
     
    
    
    --stp3计算重复委案率
    
    select a.导入月份
    ,a.委托方
    ,a.重复导入合同数*100.0/b.导入合同数 as '重复委案率%'
    from #A a
    left join #B b 
    on a. 导入月份 =b.导入月份
    and a.委托方 =b.委托方
  • 相关阅读:
    DGA域名可以是色情网站域名
    使用cloudflare加速你的网站隐藏你的网站IP
    167. Two Sum II
    leetcode 563. Binary Tree Tilt
    python 多线程
    leetcode 404. Sum of Left Leaves
    leetcode 100. Same Tree
    leetcode 383. Ransom Note
    leetcode 122. Best Time to Buy and Sell Stock II
    天津Uber优步司机奖励政策(12月28日到12月29日)
  • 原文地址:https://www.cnblogs.com/zwt20120701/p/10899991.html
Copyright © 2011-2022 走看看