SQL如何查询连续数字并且统计连续个数
2021/7/9 19:11:35
本文主要是介绍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值说明是连续的
这篇关于SQL如何查询连续数字并且统计连续个数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南