ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL如何查询连续数字并且统计连续个数

2021-07-09 16:01:59  阅读:260  来源: 互联网

标签:12 no 个数 sale 连续 SQL 出单 工号 lx


领导要求抽取一个数据,统计首次达到连续举绩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值说明是连续的

 

标签:12,no,个数,sale,连续,SQL,出单,工号,lx
来源: https://www.cnblogs.com/xiaohuhu/p/14990938.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有