領導要求抽取一個數據,統計首次達到連續舉績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值說明是連續的