hive账单表算连续逾期以及累计逾期

样例数据: 

FS201610213258  4,5,6      3       3

FS201608225113  6,9          2       1


SELECT src.buss_no,

    concat_ws(',',collect_set(src.periods))    AS overude_periods,  #逾期中所有期数

    MAX(src.cnt)                AS max_overdue_cnt,  #累积逾期

    MAX(src.contiue_cnt)        AS contiue_cnt    #连续逾期

FROM (

    SELECT ta.buss_no,

        ta.periods,

        ta.cnt,

        ROW_NUMBER() OVER(PARTITION BY ta.buss_no,(ta.periods-ta.cnt ) ORDER BY ta.cnt) AS contiue_cnt

    FROM (

        SELECT b.buss_no, #订单号

            b.periods,  # 账单中期数

            ROW_NUMBER() OVER(PARTITION BY b.buss_no ORDER BY b.periods) cnt  #排序

        FROM dw.dwd_fyd_bills b

        WHERE b.dt = '20170601'

            AND b.status IN ('03','04','05')

    ) ta

) src group by src.buss_no limit 100;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,424评论 0 10
  • 超高速音视频编码器用法: ffmpeg [options] [[infile options] -i infile...
    吉凶以情迁阅读 4,649评论 0 4
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,112评论 0 0
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,504评论 0 13
  • 在我们公司有这样一个人,她个子不高胖胖的每天总是那么的开心快乐总给人激情澎湃的样子大家都叫她快乐的像天使。为...
    dd6f3baf8848阅读 253评论 0 0