zoukankan      html  css  js  c++  java
  • SQL如何查询连续数字并且统计连续个数

    领导要求抽取一个数据,统计首次达到连续举绩12周的清单,连续举绩12周的意思是连续12周销售员都有出单。

    12次出单不难判断,难点是如何判断是否是连续出单。下图是一个销售人员的出单记录,其中第24周出单2次,第26周没有出单,所以只有14周~25周是满足连续举绩的要求。

    技巧:去掉举绩日期,增加一列lx(周次-行号),我们只要判断lx是否相同,相同说明是连续。

    还有一点要注意,因为24周有2次出单,所以数据要根据工号、姓名、lx_zhou(周次)分组,24周两次出单要合成一条数据,件数取和。

    分组前的图:

    分组后的图:

     具体sql如下:

    SET DATEFIRST 1 --设置周从周一开始算
    
    with C as
    (
    --lx_zhou是周次
    select sale_no 工号,psnname 姓名,sum(js) 件数,datepart(WK,mio_date) lx_zhou,datepart(WK,mio_date)- row_number() over(partition by sale_no order by sale_no,datepart(WK,mio_date)) lx 
    from shishi_jj2021_all_qxhr 
    where right(left(sale_no,7),1) in ('6','8') 
    group by sale_no,psnname,datepart(WK,mio_date)  --根据工号、姓名、周次分组
    )
    select 工号,姓名,count(件数) from C group by 工号,姓名,lx having count(件数)>=12 order by 1; --相同的lx值说明是连续的
  • 相关阅读:
    小程序开发系列(五)悬浮搜索框
    LINQ的连接扩展(左连、右连、全连等)
    小程序开发系列(四)九宫格另一种实现
    python 生成随机图片验证码
    django定时任务小插件
    线程池模块thernd
    python logging 模块记录日志
    django Q条件
    jquery 事件绑定
    jQuery示例
  • 原文地址:https://www.cnblogs.com/xiaohuhu/p/14990938.html
Copyright © 2011-2022 走看看