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值說明是連續的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM